4

我有一个向服务器发送请求并下载 json 的片段,然后将其解析为一个列表视图,不知何故我无法正确访问该视图。下面是我的应用程序的某些部分,这是我第一次接触带有片段的列表视图,因为出于某种原因,我只允许使用 Fragment,所以我选择 ' setAdapter' 而不是 ' setListAdapter' 作为我的适配器

我的片段.java

 public class gallery extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View myFragmentView = inflater.inflate(R.layout.tab_frag2_layout,
                    container, false);
            return myFragmentView;
        }

    public void onActivityCreated(Bundle savedInstanceState) {
    .........
    .........
    .........
    setAdapter(colorAdapter);

    }

layout.tab_frag2_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#ffffff">

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="@dimen/list_padding"
    android:paddingRight="@dimen/list_padding"
    android:tag="listf" />

</LinearLayout>

我的期望是使用

MyListView = (ListView)myFragmentView.findViewById(R.id.list);

得到我的看法,但它不起作用......现在我只想得到我的列表视图并申请

MyListView.setAdapter(colorAdapter)对它

任何帮助将不胜感激,谢谢

4

2 回答 2

8

Option1: Since your fragment layout consists of just a simple ListView. Consider using

public class gallery extends ListFragment

Then you can use this code to get your listview.

myFragmentView.getListView()

Option2: As Nickolaus mentioned, you need a custom id if you want to use findViewById.

android:id="@+id/listview1"

于 2013-01-29T09:57:28.630 回答
2

如果您不想使用 ListFragment,则需要添加自定义 id (android:id="@+id/custom_id") 然后您可以使用 findViewById 查找 ListView

于 2013-01-29T09:50:16.623 回答