Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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 Adapter_Android Recyclerview - Fatal编程技术网

Android 是否将项目添加到回收器视图?

Android 是否将项目添加到回收器视图?,android,android-adapter,android-recyclerview,Android,Android Adapter,Android Recyclerview,所以我,;我尝试实现一种方法,当点击一个按钮时,一个新行或项目被添加到recyclerview中。关于这件事我读了很多书,但我就是想不起来。任何帮助都将不胜感激 这里是我的适配器,我相信这是您编写向recyclerview添加项的大部分代码的地方: public class DazAdapter extends RecyclerView.Adapter<DazAdapter.MyViewHolder> { List<Information> data = Col

所以我,;我尝试实现一种方法,当点击一个按钮时,一个新行或项目被添加到recyclerview中。关于这件事我读了很多书,但我就是想不起来。任何帮助都将不胜感激

这里是我的适配器,我相信这是您编写向recyclerview添加项的大部分代码的地方:

     public class DazAdapter extends RecyclerView.Adapter<DazAdapter.MyViewHolder> {
List<Information> data = Collections.emptyList();
private LayoutInflater inflater;
private Context context;

public DazAdapter(Context context, List<Information> data) {
    this.context = context;
    inflater = LayoutInflater.from(context);
    this.data = data;
}

public void addData(Information newModelData, int position) {
    data.add(position, newModelData);
    notifyItemInserted(position);
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.custom_row, parent, false);
    MyViewHolder holder = new MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    Information current = data.get(position);
    holder.title.setText(current.title);

}

@Override
public int getItemCount() {
    return data.size();
}

class MyViewHolder extends RecyclerView.ViewHolder {
    TextView title;
    ImageView icon;

    public MyViewHolder(View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.listText);

    }
}
公共类适配器扩展了RecyclerView.Adapter{ List data=Collections.emptyList(); 私人充气机; 私人语境; 公共适配器(上下文、列表数据){ this.context=上下文; 充气器=充气器。从(上下文); 这个数据=数据; } public void addData(信息newModelData,int位置){ data.add(位置,newModelData); (位置); } @凌驾 公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图=充气机。充气(R.layout.custom_行,父项,false); MyViewHolder=新的MyViewHolder(视图); 报税表持有人; } @凌驾 公共无效onBindViewHolder(MyViewHolder,int位置){ 信息当前=数据获取(位置); holder.title.setText(当前.title); } @凌驾 public int getItemCount(){ 返回data.size(); } 类MyViewHolder扩展了RecyclerView.ViewHolder{ 文本视图标题; 图像视图图标; 公共MyViewHolder(查看项目视图){ 超级(项目视图); title=(TextView)itemView.findViewById(R.id.listText); } } }

您是否尝试调用addData方法而不是notifyItemInserted

在我的例子中,我使用它从中加载数据,但我认为当您添加单个项时,它应该可以工作

 public void onLoadFinished(Loader<List<Data>> loader, List<Data> data) {
    this.mAdapter.setDatas(data);
    this.mAdapter.notifyDataSetChanged();
}
public void onLoadFinished(加载程序,列表数据){
this.mAdapter.setDatas(数据);
this.mAdapter.notifyDataSetChanged();
}

您的问题是什么?只需按一下按钮,即可将更多项目添加到回收视图中。再加一行,但我不明白。代码已经准备好了。您所要做的就是在适配器中使用适当的
newModelData
参数在适当的位置调用方法
addData
。因此,在您的
onClickListener
中,只需执行类似于
adapter.addData(new Information(),1)
的操作即可。但是,如何更改这些新项目中的文本?您的意思是什么?您的
onBindViewHolder
已经处理好了。您可以检查并