1

我的 Android 应用程序中有两个视图(实际上是 2 个视图片段)。第一个视图有一个文本字段和一个按钮,第二个视图有一个 ListView。

我想做的是根据文本字段中设置的内容(从第一个视图)在 ListView 中设置一些数据。但我不知道该怎么做。

我目前正在通过onCreateView2nd Views SecondFragment.java 文件中的方法在 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在应用程序加载时会立即调用。我只是不知道我可以从哪里得到它。

4

1 回答 1

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();
于 2012-07-24T09:36:24.477 回答