2012-07-24 30 views
1

我的Android應用程序中有兩個視圖(實際上是2個視圖片段)。第一個視圖有一個文本框和一個按鈕,第二個視圖有一個ListView。當準備好時在視圖中設置ListView

我想要做的就是根據文本框中設置的內容(從第一個視圖)在ListView中設置一些數據。但我不知道如何做到這一點。

我目前在第二視圖SecondFragment.java文件中的onCreateView方法的ListView中設置硬編碼數據。這看起來是這樣的:

ListView list = (ListView)view.findViewById(R.id.list_mainmenu); 

items.add(new SectionItem("Section 1")); 
items.add(new EntryItem("Item 1", "This is item 1", 1)); 
items.add(new EntryItem("Item 2", "This is item 2", 2)); 
items.add(new EntryItem("Item 3", "This is item 3", 3)); 


EntryAdapter adapter = new EntryAdapter(this.getActivity().getBaseContext(), items); 
list.setAdapter(adapter); 

但具有在onCreateView方法是不是我想要的。我想能夠從另一個java文件設置該視圖的列表。在我的情況下,FirstFragment.java

這是可能的,如果是這樣,我該怎麼做?

我可以想象,必須已經有一些SecondFragment.java類的實例,因爲onCreateView會在應用程序加載時被立即調用。我無法找到我可以從哪裏得到它。

+0

http://stackoverflow.com/ questions/5194548/how-to-pass-data-between-fragments ..請參閱本文 – manjusg 2012-07-24 08:47:18

回答

0

的事情是,你設置的適配器oncreate, 而設置它oncreate,將它放在一個按鈕點擊,或者在的時候,你要顯示的列表等。

// here SelectOption is a button 
SelectOption.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) {  

     if(Text.equals("BEVERAGES")) {   
      l1.setAdapter(bever); 
      return; 
     }  
     else if(Text.equals("BREAKFAST")) { 
      l1.setAdapter(Breakf); 
      S5=new String[]{ Breakf.size() }; 
      return; 
     } 
     else if(Text.equals("LUNCH")) { 
      l1.setAdapter(lunc); 
      S5=new String[]{ lunc.size() }; 
      return; 
     } 
     else if(Text.equals("DINNER")) { 
      l1.setAdapter(Dinn); 
      S5=new String[]{ Dinn.size() }; 
      return; 
     } 
     else if(Text.equals("DESSERTS")) { 
      l1.setAdapter(Dessert); 
      S5=new String[]{ Dessert.size() }; 
      return; 
     } 
     else if(Text.equals("APPETIZERS & SIDES")) { 
      l1.setAdapter(Appet); 
      S5=new String[]{ Appet.size() }; 
      return; 
     } 
    } 
}); 

所以當你設置一個適配器, 數據列表只應填寫並在此之後,當你添加新值適配器還加入這行也

adapter.notifyDataSetChanged(); 
相關問題