如何在片段中使用自定义适配器

时间:2012-09-10 00:25:09

标签: android android-fragments adapter

我有一个简单的问题,我知道你可以使用:

setListAdapter(new ArrayAdapter<String> (getActivity(), 
                R.layout.your_layout,
                R.id.your_text,
                stringArray));  

在onActivityCreated()方法的 ListFragment 中。到目前为止,这对我来说效果很好,但只涵盖了一个项目。例如,假设在布局中,我有两个TextView:sms_text和sms_timestamp;两者分别由smsTextArray []和smsTimeStampArray []填充。这个电话怎么样?我试过了:

setListAdapter(new ArrayAdapter<String> (getActivity(), 
                R.layout.tweet_list_item,
                R.id.sms_text,
                smsTextArray,
                R.id.sms_timestamp,
                smsTimeStampArray,
                ));     

那不起作用:(

我也尝试在同一个onActivityCreated()中调用setListAdapter()两次,但是虽然这样有效,但它只在列表项中显示了setListAdapter()的第二次调用。

我也试过创建自己的适配器,但是我有点迷失在这个烂摊子里。你们能指出我正确的方向吗?我不需要确切的代码,只需要链接到我可以阅读的库,或者它可能只是一个简单的代码调用。谁知道,也许我只是使用错误的参数,任何想法?

1 个答案:

答案 0 :(得分:1)

您不能使用简单的ArrayAdapter并显示多个数据。适配器将列表中的一个元素映射到listView中的一个元素。要让数据来自两个不同的部分,您需要创建自己的适配器(比声音更简单)。或者,您也可以使用SimpleAdapter中的地图列表(see this作为示例)。

就个人而言,我建议使用自定义适配器。你最终将不得不编码,现在没有时间了。此外,您的代码将更具可读性和显着性。