Android 在我的列表视图中获取子项

Android 在我的列表视图中获取子项,android,listview,subitem,Android,Listview,Subitem,在我的项目列表视图中,我得到了提要的标题,但我想得到该列表视图中子项目的描述、图像和链接。你能帮助我吗? 这就是我所拥有的: 1) main活动中的ListView ArrayAdapter<RSSItem> adapter; adapter = new ArrayAdapter<RSSItem>( this, android.R.layout.simple_list_item_1, myRssFeed.getList() ); setListAd

在我的项目列表视图中,我得到了提要的标题,但我想得到该列表视图中子项目的描述、图像和链接。你能帮助我吗? 这就是我所拥有的:

1)
main活动中的
ListView

ArrayAdapter<RSSItem> adapter;
adapter = new ArrayAdapter<RSSItem>(
    this,
    android.R.layout.simple_list_item_1,
    myRssFeed.getList()
);
setListAdapter(adapter);

只需使用自定义的
阵列适配器
。它非常简单:

1) 定义您的自定义
ArrayAdapter
。填写
getView()
的正文,根据传递给适配器的每个项目创建一个视图

public class YourArrayAdapter<YourDataObject> extends ArrayAdapter<T> {

    public YourArrayAdapter(Context context) {
        super(context, 0); // Pass in 0 because we will be overriding getView()
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // getView() gets called when this item becomes visible in the ListView
        // All you have to do is build a view with your data object and return it.
        YourDataObject yourDataObject = getItem(position);
        YourView view = new YourView(yourDataObject);

    }
}

这里要认识到的重要一点是,当ListView通过
Adapter.getView()
请求视图时,
Adapters
将数据列表转换为实际的UI
视图。在本例中,您正在创建一个自定义的
ArrayAdapter
,因此您可以控制它返回的
视图的所有内容。您可以返回一个具有自己布局的视图,该视图包含RSSItem包含的许多不同的数据段,并以您想要的任何格式显示它们。很酷的一点是,通过使用
ListView
和自定义
ArrayAdapter
,您不必担心创建或销毁这些视图——这一切都由您来完成。因此,如果您从
ArrayAdapter.getView()
返回的项目包含位图,您就不必太担心内存不足

谢谢你的回答,但我的意思是我想要列表视图项的标题(可能用粗体),以及列表视图子项的说明和其他内容。我不确定我是否理解你的意思,但这段代码允许你这样做。在
YourView
构造函数中,可以从
YourDataObject
中提取标题,将其设置为粗体,并以不同的方式设置描述的样式。请记住,您从
getView()
返回的视图可以包含任意数量的嵌套视图,您甚至可以为此视图膨胀布局,并将数据对象中的值粘贴到其中。请原谅,我很烦人,但我无法理解。你能给我举一个得到描述的例子吗。我没有得到结果,你能编辑你的问题,包括一些格式良好的代码吗?1) 包含要显示的数据的类。2) 您希望在每个列表项中实现的布局的一般描述,或实际的layout.xml(如果可能)。这是什么意思?不是吗?
public class YourArrayAdapter<YourDataObject> extends ArrayAdapter<T> {

    public YourArrayAdapter(Context context) {
        super(context, 0); // Pass in 0 because we will be overriding getView()
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // getView() gets called when this item becomes visible in the ListView
        // All you have to do is build a view with your data object and return it.
        YourDataObject yourDataObject = getItem(position);
        YourView view = new YourView(yourDataObject);

    }
}
YourArrayAdapter<RSSItem> adapter = new YourArrayAdapter<RSSItem>(this);
adapter.addAll(myRssFeed.getList());
setListAdapter(adapter);