Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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_Listview_Android Listview_Android Arrayadapter_Custom Adapter - Fatal编程技术网

Android 向自定义阵列适配器添加更多项

Android 向自定义阵列适配器添加更多项,android,listview,android-listview,android-arrayadapter,custom-adapter,Android,Listview,Android Listview,Android Arrayadapter,Custom Adapter,我有一个使用cusome ArrayAdapter填充的listview,listview中的每一行都包含图像和标题 我遵循了这个教程 要创建自定义arrayadapter并使用它填充我的listview,请执行以下操作: 在此,我将适配器附加到MainActivity中的列表: newsAdapter = new NewsAdapter( getActivity() , titles , images ); listView.setAdapter(newsAdapter); 每个图像和标题都

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

我遵循了这个教程 要创建自定义arrayadapter并使用它填充我的listview,请执行以下操作:

在此,我将适配器附加到MainActivity中的列表:

newsAdapter = new NewsAdapter( getActivity() , titles , images );
listView.setAdapter(newsAdapter);
每个图像和标题都是我想要填充listview的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;
}



 }
公共类新闻适配器扩展了ArrayAdapter{
私人最终语境;
私人最终ArrayList标题;
私有最终数组列表图像;
公共新闻适配器(上下文上下文、ArrayList标题、ArrayList图像){
超级(上下文、右布局、抽屉列表、项目、标题);
this.context=上下文;
this.titles=标题;
这个。图像=图像;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图行视图=充气机。充气(R.layout.news\u list\u项目,父项,false);
TextView title=(TextView)rowView.findViewById(R.id.news\u title);
ImageView ImageView=(ImageView)rowView.findViewById(R.id.news\u thumble);
title.setText(titles.get(position));
新建下载的ImageTask(imageView).execute(images.get(position));
返回行视图;
}
}
这段代码运行良好,listView中填充了数据(图像和标题)

问题:

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


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

是的,例如,您可以在自定义适配器中实现一个
addItem(字符串标题、字符串图像)
方法。 然后,此方法将传递的值添加到
titles
images
列表中

更改listadapter的内容后,必须通过在该适配器中调用
notifyDataSetChanged()
来重新绘制listview,从而使视图无效


然后在主活动中调用此方法,将更多项目添加到列表中。(例如,
newsAdapter.addItem(“一些标题”,imageString);

是的,例如,您可以在自定义适配器中实现一个
addItem(字符串标题,字符串图像)
方法。 然后,此方法将传递的值添加到
标题
图像
列表中

更改listadapter的内容后,必须通过在该适配器中调用
notifyDataSetChanged()
来重新绘制listview,从而使视图无效


然后在主活动中调用此方法,将更多项目添加到列表中。(例如
newsAdapter.addItem(“某些标题”,imageString);

我遵循了您的指示,但它不起作用。google是否以较新版本更改了它?a请注意,此方法仍然有效,对于列表视图是一种很好的方法。但是现在,RecycleService根据具体需要而定,在某些情况下是ListView的一个很好的替代品。我遵循了您的指示,但它不起作用。google是否更改在更新的版本中,这种方法仍然有效,并且是列表视图的好方法。但是现在,根据具体需要,recyclerview在某些情况下是列表视图的好替代品。