Java 如何为片段中包含的ListView调用setListAdapter

Java 如何为片段中包含的ListView调用setListAdapter,java,android,Java,Android,我看到的ListView的所有示例都是ListActivity或ListFragment的实现,其中setListAdapter()在onCreate()事件中被调用 但是,我想在另一个片段中包含列表视图,我不想将列表视图作为片段本身…如果你知道我的意思的话 我想知道我的片段是否有xml,如下所示: <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android

我看到的
ListView
的所有示例都是
ListActivity
ListFragment
的实现,其中
setListAdapter()
onCreate()
事件中被调用

但是,我想在另一个
片段中包含
列表视图
,我不想将
列表视图
作为
片段
本身…如果你知道我的意思的话

我想知道我的
片段是否有xml,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:textSize="40sp"
    >

    <ListView android:id="@+id/left_menu" android:layout_width="wrap_content" android:layout_height="wrap_content">
    </ListView>

</LinearLayout>

对于fragment类中的列表视图,如何调用
setListAdapter
?我看到了一个示例,其中
列表视图
包含在
活动
中,您可以调用
findViewById()
来获取
列表视图
对象,然后调用
setListAdapter()


但是,
Fragment
类没有
findViewById
方法,那么如何获取对
ListView
对象的引用呢?

只是一个免责声明,我自己并没有真正尝试过,但是从API文档中读取,您可能能够调用它来获取片段的根视图。 假设您将通过


一旦您获得根视图,我想您可能可以通过通常的
findviewbyd

访问ListView。这只是一个免责声明,我自己并没有真正尝试过,但是从API文档中读取,您可能能够调用来获取片段的根视图。 假设您将通过


获得根视图后,我认为您可以通过通常的
findViewById

访问ListView。具体来说,片段可以使用getActivity()访问活动实例,并轻松执行任务,例如在活动布局中查找视图:

View listView = getActivity().findViewById(R.id.list);

具体而言,片段可以使用getActivity()访问活动实例,并轻松执行任务,例如在活动布局中查找视图:

View listView = getActivity().findViewById(R.id.list);

我知道这件事来得晚,但我想我会回答的,以防对其他人有帮助。您可以像其他小部件一样在普通片段中拥有ListView。在同一个片段中还可以有其他几个小部件。在本例中,使用onCreateView对碎片充气,如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
    View view = inflater.inflate(R.layout.your_fragment, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    // I gave the default list id
    listView = (ListView) view.findViewById(android.R.id.list);
    listView.setAdapter(customAdapter); // your customAdapter should have already been initialzed at this point
    // Initialize other items  - Buttons, EditTexts... etc.
}

然后,就像对待任何ListAdapter对象一样对待它

我知道这来得晚,但我想我会回答,以防它对其他人有帮助。您可以像其他小部件一样在普通片段中拥有ListView。在同一个片段中还可以有其他几个小部件。在本例中,使用onCreateView对碎片充气,如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
    View view = inflater.inflate(R.layout.your_fragment, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    // I gave the default list id
    listView = (ListView) view.findViewById(android.R.id.list);
    listView.setAdapter(customAdapter); // your customAdapter should have already been initialzed at this point
    // Initialize other items  - Buttons, EditTexts... etc.
}

然后您只需像对待任何ListAdapter对象一样对待它

做得好,先生-您完全正确的getView正是我所需要的!你能不能用一个示例代码解释一下,如何做到这一点?做得好,先生-你完全正确,getView正是我需要的!你能不能用一个示例代码解释一下,如何做到这一点?