2012-07-24 33 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(); 
相关问题