2013-05-20 66 views
0

我是新來的Android和有一個問題:如何從ArrayList的一個片段轉移到另一個

我想轉院從FavListFragment到ApplistFragment的的最愛ArrayList中。 有人能告訴我如何做到這一點?我試圖用Bundle和putStringArrayList轉移數據,但是這不起作用。我希望有人能幫助我,我現在正在尋找幾個小時。

public class FavListFragment extends ListFragment { 

ArrayList<String> list; 
ArrayList<String> fav = new ArrayList<String>(); 


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_main_dummy, container, false); 
     Button button = (Button) view.findViewById(R.id.button1); 
     Button button2 = (Button) view.findViewById(R.id.button2); 
     for(int i = 0; i < 5; i++) 
     list.add("item" + i); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(
     getActivity(), android.R.layout.simple_list_item_1, list); 
     setListAdapter(adapter); 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Activity activity = getActivity(); 

       if (activity != null) { 
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
          getActivity(), android.R.layout.simple_list_item_multiple_choice, list); 
          setListAdapter(adapter2); 
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
       } 
      } 

     }); 

     button2.setOnClickListener(new Button.OnClickListener() { 



      @Override 
      public void onClick(View v) { 
       int cntChoice = getListView().getCount(); 

       SparseBooleanArray sparseBooleanArray = getListView() 
         .getCheckedItemPositions(); 

       for (int i = 0; i < cntChoice; i++) { 

        if (sparseBooleanArray.get(i)) { 

         String selected = "" + 
          getListView().getItemAtPosition(i).toString(); 
         System.out.println(selected); 
         fav.add(selected); 

        } 
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(
         getActivity(), android.R.layout.simple_list_item_1, list); 
         setListAdapter(adapter); 
       } 

      } 
     }); 
     return view; 
    } 

而她的另一個片段

public class AppListFragment extends ListFragment { 

ArrayList<String> list; 

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
} 


public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_main_dummy, container, false); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
      android.R.layout.simple_list_item_1, list); 
    setListAdapter(adapter); 
    return view; 


} 

此北京時間我的嘗試:

AppListFragment fr = new AppListFragment(); 
         Bundle value= new Bundle(); 
         value.putStringArrayList("temp1", fav); 
         fr.setArguments(value); 

Bundle bundle=getArguments(); 
    ArrayList <String> myStrings = bundle.getStringArrayList("temp1"); 
+0

也許[這](http://stackoverflow.com/questions/4186021/how-to-start-new-activity-on-button-click)答案,從以前的一些問題可以幫助你... – SteBra

+0

「我試圖用Bundle和putStringArrayList轉移數據,但這沒有奏效」你能告訴我們你是否試圖做到這一點? – Krylez

+0

我編輯我的問題與我試過的 – user2127925

回答

相關問題