月關(guān)寶盒
2023-11-01 20:58:05
您好,我想從我的片段轉(zhuǎn)移到另一個(gè)活動(dòng)。我?guī)缀鯂L試了找到的所有解決方案,但是在按下按鈕后,我的應(yīng)用程序立即關(guān)閉。我是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; }}
1 回答

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
我從這一行假設(shè):
intent = new Intent(GalleryFragment.this.getActivity(), HomeFragment.class);
您正在嘗試啟動(dòng)Fragment,而不是Activity. 為了轉(zhuǎn)換到另一個(gè)Fragment,請(qǐng)將您的替換Intent為:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getFragmentManager()
.beginTransaction()
.replace(...) //Or add, depends on your use case
.commit();
}
});
添加回答
舉報(bào)
0/150
提交
取消