當從活動傳遞數據到片段(片段重疊)時,我有一個問題: 我需要傳遞數組列表的整數,其中包含複選框的ID來檢查...傳遞數據從活動到片段transaction.replace()
傳遞數據之前: enter image description here
後通數據: enter image description here
代碼以從活動數據傳遞給片段:
Bundle bundle = new Bundle();
bundle.putIntegerArrayList("oki", hm);
System.out.println("PERO:" + bundle);
MyListFragment myFragment = new MyListFragment();
myFragment.setArguments(bundle);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, myFragment);
transaction.commit();
代碼來獲取數據:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the custom_spinner_items for this fragment
//super.onDestroy();
try {
bundle = getArguments();
System.out.println("BUNDLES:" + bundle);
//if (bundle != null) {
strtext = bundle.getIntegerArrayList("oki");
System.out.println("AH:" + strtext);
//}
}catch(Exception e){
}
您需要提供更多關於應用程序的代碼和上下文。如果Fragment已經存在,請不要創建它的新實例並應用於事務中。考慮使用像MVC或MVVM或MVP這樣的體系結構來對代碼中的問題進行明確劃分。 –
您能否以我的代碼爲例說明如何解決我的問題?謝謝 – androidiano
不是沒有更好地理解代碼試圖做什麼以及它的結構。根據這些圖像,我懷疑在屏幕上有一個「碎片」或「ViewPager」包含碎片,但是「活動」試圖更新現有「碎片」的內容。只是基於我所看到的以及你提供的一小段代碼的猜測。在一個簡單的實現中,如果'Fragment'依賴於某些東西來「告訴」它要選擇什麼,它在創建時(通過「Bundle」)或者需要一個接口來調用以獲取該信息時需要該信息。 –