【问题标题】:adding more items to custom ArrayAdapter向自定义 ArrayAdapter 添加更多项目
【发布时间】:2014-02-17 14:18:00
【问题描述】:

我有一个使用 cusome ArrayAdapter 填充的列表视图,列表视图中的每一行都包含图像和标题。

我跟着这个教程http://www.vogella.com/tutorials/AndroidListView/article.html 创建自定义 arrayadapter 并使用它填充我的列表视图,如下所示:

在这里我将适配器附加到我在 MainActivity 中的列表:

newsAdapter = new NewsAdapter( getActivity() , titles , images );
listView.setAdapter(newsAdapter);

每个图像和标题都是 ArrayList 对象,我想用它们来填充我的列表视图。

这是我的 ArrayAdapter:

public class NewsAdapter extends ArrayAdapter<String> {

private final Context context;
private final ArrayList<String> titles;
private final ArrayList<String> images;

public NewsAdapter(Context context,ArrayList<String> titles, ArrayList<String> images ) {
    super(context, R.layout.drawer_list_item, titles);
    this.context = context;
    this.titles = titles;
    this.images = images;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.news_list_item, parent, false);
    TextView title = (TextView) rowView.findViewById(R.id.news_title);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.news_thumble);
    title.setText(titles.get(position));
    new DownloadImageTask(imageView).execute(images.get(position));
    return rowView;
}



 }

此代码完美运行,并且 listView 填充了数据(图像和标题)。

问题:

是否可以在此实现中附加 Listview(添加更多行)? (例如使用 newsAdapter.add() 方法)。

如果这是可能的,如何实现?

【问题讨论】:

    标签: android listview android-listview android-arrayadapter custom-adapter


    【解决方案1】:

    是的,例如,您可以在自定义适配器中实现 addItem(String title, String image) 方法。 然后,此方法将传递的值添加到您的 titlesimages 列表中。

    更改列表适配器的内容后,您必须通过在该适配器中调用 notifyDataSetChanged() 来使视图无效以重绘列表视图。

    然后在您的主要活动中调用此方法以将更多项目添加到列表中。 (例如newsAdapter.addItem("some Title", imageString);

    【讨论】:

    • 我按照您的指示进行操作,但它不起作用。谷歌是否将其更改为较新的版本?
    • afaik 这种方法仍然有效,并且是列表视图的好方法。但如今,recyclerview - 根据具体需求 - 在某些情况下可以很好地替代列表视图。
    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多