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,

您好,我想从片段转到另一个活动。我几乎尝试了我找到的所有解决方案,但按下按钮后,我的应用程序立即关闭。我是java新手,我想我需要一些帮助

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();
    }
});