Java 从片段打开活动立即关闭
您好,我想从片段转到另一个活动。我几乎尝试了我找到的所有解决方案,但按下按钮后,我的应用程序立即关闭。我是java新手,我想我需要一些帮助Java 从片段打开活动立即关闭,java,android,android-studio,Java,Android,Android Studio,您好,我想从片段转到另一个活动。我几乎尝试了我找到的所有解决方案,但按下按钮后,我的应用程序立即关闭。我是java新手,我想我需要一些帮助 public class GalleryFragment extends Fragment { private GalleryViewModel galleryViewModel; Intent intent; public View onCreateView(@NonNull LayoutInflater inflater,
public class GalleryFragment extends Fragment {
private GalleryViewModel galleryViewModel;
Intent intent;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_gallery, container, false);
intent = new Intent(GalleryFragment.this.getActivity(), HomeFragment.class);
final Button btn = (Button) rootView.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(intent);
}
});
galleryViewModel =
ViewModelProviders.of(this).get(GalleryViewModel.class);
View root = inflater.inflate(R.layout.fragment_gallery, container, false);
final TextView textView = root.findViewById(R.id.text_gallery);
galleryViewModel.getText().observe(this, new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
}
公共类GalleryFragment扩展了片段{
专用GalleryViewModel GalleryViewModel;
意图;
公共视图onCreateView(@NonNull layoutiner充气机,
视图组容器,捆绑包savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment\u画廊,容器,假);
intent=newintent(GalleryFragment.this.getActivity(),HomeFragment.class);
final Button btn=(Button)rootView.findviewbyd(R.id.btn);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
星触觉(意向);
}
});
galleryViewModel=
ViewModelProviders.of(this.get)(GalleryViewModel.class);
视图根=充气机。充气(R.layout.fragment_gallery,container,false);
final TextView TextView=root.findviewbyd(R.id.text\u gallery);
galleryViewModel.getText().observe(这个,新的观察者(){
@凌驾
公共void onChanged(@Nullable String s){
textView.setText;
}
});
返回根;
}
}
我从这一行假设:
intent = new Intent(GalleryFragment.this.getActivity(), HomeFragment.class);
您试图启动的是片段
,而不是活动
。要转换到另一个片段
,请将您的意图
替换为:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getFragmentManager()
.beginTransaction()
.replace(...) //Or add, depends on your use case
.commit();
}
});