android - 在我的 ListView 中获取子项

标签 android listview subitem

在我的 ITEM ListView 中,我获得了提要的标题,但我想在该 ListView 的 SUBITEM 中获得描述、图像和链接。你能帮助我吗? 这是我的:

1) MainActivity中的ListView

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

2) RSSItem

public class RSSItem {

    private String title = null;
    private String description = null;
    private String link = null;
    private String pubdate = null;

    RSSItem(){}

    void setTitle(String value) {
        title = value;
    }

    void setDescription(String value) {
        description = value;
    }
    void setLink(String value) {
        link = value;
    }
    void setPubdate(String value) {
        pubdate = value;
    }

    String getTitle() {
        return title;
    }

    String getDescription() {
        return description;
    }
    String getLink() {
        return link;
    }
    String getPubdate() {
        return pubdate;
    }

    public String toString() {
        //TODO Auto-generated method stub
        return title;
    }
}

最佳答案

只需使用自定义 ArrayAdapter。非常简单:

1) 定义您的自定义 ArrayAdapter。填写 getView() 的主体以根据您传递给适配器的每个项目创建 View ;

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);

    }
}

2) 将适配器传递给您的 ListView,并添加数据。

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

这里要意识到的重要一点是,当 ListView 通过 Adapter.getView()< 请求 View 时,Adapter 会将数据列表转换为实际的 UI Views/。在这种情况下,您正在创建自定义 ArrayAdapter,因此您可以控制它返回的有关 View 的所有内容。您可以返回一个 View ,它有自己的布局,包括 RSSItem 包含的许多不同的数据 fragment ,并以您想要的任何格式呈现它们。很酷的是,通过使用 ListView 和自定义 ArrayAdapter,您永远不必担心创建或销毁这些 View - 这一切都为您处理。因此,如果您从 ArrayAdapter.getView() 返回的项目包含位图,则您不必太担心内存不足。

关于android - 在我的 ListView 中获取子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504982/

相关文章:

java - 在listview android中多次点击

listview - 当 this.state 改变(但不是数据源)时如何强制重绘 ListView。

c# - ListView 子项中的图像

android - 我应该使用什么字符集在 android 中使用 'ă' 字符

android - 返回堆栈中存在大量 fragment 的内存问题

安卓:自定义列表适配器

java - LisrView 子项的不同颜色

sorting - Sitecore 排序顺序与子项目排序

java - 在android studio中遇到通货膨胀异常

java - 如何为巴士预订应用程序添加过滤