Android碎片中的ListView

10

我正在尝试创建一个包含每个项的图像和对该图像的描述的项目列表。随后,该列表将放置在应用程序内的片段中。有人可以指导我如何创建它吗?我不太确定如何在没有ListActivity的情况下完成它。

2个回答

42
似乎你的Fragment应该继承ListFragment(而不是ListActivity)。从ListFragment的onCreateView()返回一个ListView,然后填充它。以下是有关从开发人员指南中填充列表的更多信息:Hello, ListView

22
如果您发现这个答案有帮助,请将其标记为答案,并针对您的新问题发布一个新的问题,以便其他人能够帮助您。 - citizen conn

16

以下是一段代码片段,可帮助您在Fragment中显示ListView:

public class MessagesFragment extends ListFragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_messages, container,
            false);

    String[] values = new String[] { "Message1", "Message2", "Message3" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
    return rootView;
}
}

这是 XML 的样子:

<ListView
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" >
</ListView>
如果您在布局中不使用'list'作为ID,或者不将ListView包含在其中,则尝试显示活动或片段时应用程序会崩溃。
参考:http://www.vogella.com/tutorials/AndroidListView/article.html#listfragments

在ListView的layout_height中,不要使用wrap_content,而应该使用fill_parent或match_parent。https://dev59.com/OGgu5IYBdhLWcg3we3Ct - Victor Oliveira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接