Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在片段中使用自定义适配器_Android_Android Fragments_Adapter - Fatal编程技术网

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

Android 如何在片段中使用自定义适配器,android,android-fragments,adapter,Android,Android Fragments,Adapter,我有一个简单的问题,我知道你可以使用: setListAdapter(new ArrayAdapter<String> (getActivity(), R.layout.your_layout, R.id.your_text, stringArray)); setListAdapter(新的ArrayAdapter(getActivity()), R.layout.your_布局,

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

setListAdapter(new ArrayAdapter<String> (getActivity(), 
                R.layout.your_layout,
                R.id.your_text,
                stringArray));  
setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.your_布局,
R.id.你的文本,
字符串数组);
在onActivityCreated()方法的列表片段中。到目前为止,这对我很有效,但只涉及一项。例如,假设在布局中,我有两个文本视图: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,
                ));     
setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.tweet_列表_项,
R.id.sms_文本,
smsTextArray,
R.id.sms_时间戳,
斯姆斯蒂姆帕雷,
));     
这不起作用:(

我还尝试在同一个onActivityCreated()中调用setListAdapter()两次,但尽管这样做有效,但它只在列表项中显示了对setListAdapter()的第二次调用


我也尝试过创建自己的适配器,但我在混乱中迷失了方向。你们能给我指出正确的方向吗?我不需要确切的代码,只需要一个指向我可以阅读的库的链接,或者可能只是一个简单的代码调用。谁知道,也许我只是使用了错误的参数,有什么想法吗?

你不能使用简单的
ArrayAdapter
并显示多个数据段。适配器将列表中的一个元素映射到listView中的一个元素。要使数据来自两个不同的部分,您需要创建自己的适配器(比听起来简单)。或者,您也可以在
SimpleAdapter
中使用映射列表(例如)


就我个人而言,我建议使用自定义适配器。您最终必须编写一个适配器,而且没有现在这样的时间。此外,您的代码将更具可读性和明显性。

我认为这恰好涵盖了您所要查找的内容。我想知道的是,我已经看过类似的教程,如果没有实际的ListView,而不是FragmentList?它们略有不同,或者我可以在该片段中添加一个ListView吗?@daniel_c05 ListFragment在内部使用ListView,因此实际上没有什么大的区别。唯一需要更改的是:您必须使用
setListAdapter(yourAdapterInstance)
而不是
yourListView.setAdapter(yourAdapterInstance)
在使用ListFragment时将适配器与视图连接起来。就是这样,在这两种情况下,扩展其中一个适配器类以构建自己的类是一样的。