在 ViewPager 的 Fragment 頁面中點擊按鈕想跳轉到新頁面,但跳轉失效。
startActivity(intent),需確保 getActivity() 不為 null(Fragment 已附加到 Activity)。viewPager.setCurrentItem() 只能在同一 Activity 內切換 Fragment,無法啟動新 Activity。// 在 Fragment 內部
Button btn = view.findViewById(R.id.btn_jump);
btn.setOnClickListener(v -> {
Intent intent = new Intent(requireActivity(), TargetActivity.class);
startActivity(intent);
// 可選:添加過場動畫
requireActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
});
requireActivity()(API 23+)或 getActivity() 獲取宿主 Activity 上下文。TargetActivity 已在 AndroidManifest.xml 註冊。現代 Android 開發推薦單 Activity 架構,配合 Jetpack Navigation 在 Fragment 間導航,而非啟動新 Activity。若確需新 Activity(如第三方 SDK、系統選擇器),上述方式即可。