[英]Starting a new Activity causes the app to restart
我创建了一个按钮,它将打开一个新活动,但是当我启动应用程序并单击该按钮时,应用程序会立即重新启动,而不会出现任何 logcat 错误。 这是我的代码:
public class amumu extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.amumu, container, false);
}
public void OnClickAmumuRunes(View view){
Intent GoToRunes = new Intent(view.getContext(), amumurunes.class);
startActivity(GoToRunes);
}
public void OnClickAmumuBuild(View view){
Intent GoToRunes = new Intent(view.getContext(), amumubuild.class);
startActivity(GoToRunes);
}
这是我想打开的代码,但我不能:
public class amumubuild extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.amumubuild, container, false);
}
}
这是一个片段类,其中第一类是 tablayout
public class FragmentClass extends AppCompatActivity {
private ViewPager viewPager;
private TabLayout tabLayout;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragments);
initViews();
setuppager();
}
private void initViews(){
viewPager = findViewById(R.id.ViewPager);
tabLayout = findViewById(R.id.tab);
}
private void setuppager(){
PagerAdapter pagerAdapter = new SlideAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
public void OnClickDisplayToastAmumu(View view) {
Toast.makeText(this,"Amumu",Toast.LENGTH_SHORT).show();
}
public void OnClickDisplayToastLee(View view) {
Toast.makeText(this,"Lee Sin",Toast.LENGTH_SHORT).show();
}
public void OnClickDisplayToastPantheon(View view) {
Toast.makeText(this,"Pantheon",Toast.LENGTH_SHORT).show();
}
public void OnClickDisplayToastNami(View view) {
Toast.makeText(this,"Nami",Toast.LENGTH_SHORT).show();
}
您正在使用startActivity()
导航到Fragment
。 这不起作用。 您只能在Intent
指定Activity
类。
此外,请确保在AndroidManifext.xml
文件中注册每个活动,如下所示:
<application>
...
<activity android:name="com.example.SecondActivity">
</application>
查看这篇文章,了解如何在一个 Activity 中的多个 Fragment 之间导航: 如何从一个 Activity 启动 Fragment
你不能通过 startActivity 函数启动片段,所以你需要这个:
private void loadFragment(final Fragment fragment) {
// load fragment
try {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.commit();
currentFragment = fragment;
} catch (Exception e) {
Log.d("mal", e.toString());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.