3

我有一个带有 2 个标签的应用程序。每个选项卡都有其各自的片段。在其中一个选项卡上,我需要放置一个列表视图,以便从存储的数组接收数据并将它们作为列表放置。

这是我到目前为止的代码:

public class Frag3 extends Fragment{


    ListView lv1;
    ProgressDialog ShowProgress;
    public ArrayList<Post> PostList = new ArrayList<Post>();
    TextView tv1;
    Button button1;

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

        if (container == null) {
          return null;
       }
                View view = inflater.inflate(R.layout.tab3, container, false);
                //View tv = view.findViewById(R.id.textView1);

                View listView = view.findViewById(R.id.listView1);

               String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
                    "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
               "Linux", "OS/2" };

               ArrayAdapter<String> files = new ArrayAdapter<String>(getActivity(), 
                        android.R.layout.simple_list_item_1, 
                        values);

                lv1.setAdapter(files);

        return view;
    }

}

我尝试了来自不同网络参考的各种选项,但它们似乎都不起作用。有人可以指导我前进,因为我现在迷路了,似乎无法理解接下来的步骤。

4

3 回答 3

5

最大的问题是不匹配的变量名。您lv1以班级成员的身份呼唤并为此设置一个列表adatper,但您使用它listView来查找视图。其中之一需要改变。

以下更改应该会有所帮助:

lv1 = (ListView) view.findViewById(R.id.listView1);    
于 2012-08-06T16:30:17.787 回答
3
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.tab3, container, false);

        listView = (ListView) view.findViewById(R.id.ListView1);        
        listView.setAdapter(files);

尝试在您的代码中执行此操作

于 2012-08-06T21:39:47.597 回答
2

尝试扩展ListFragment而不是Fragment. 这将为您提供类似于onListItemClick列表的功能。getListView()扩展时也可以使用ListFragment。然后在你的xml中你可以使用android listid:

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<TextView android:id="@android:id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

然后在您的 onActivityCreated() 中,您可以使用setListAdapter设置列表适配器,而无需使用findViewById

于 2012-08-06T16:26:56.190 回答