Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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 使用recyclerview创建一张卡_Android_Android Recyclerview - Fatal编程技术网

Android 使用recyclerview创建一张卡

Android 使用recyclerview创建一张卡,android,android-recyclerview,Android,Android Recyclerview,我的主要活动是imageview,我想在单击它时创建一张新卡,我想管理它们。当我单击imageview时,如何将卡片添加到版面。这是我的cardview版面xmlcard\u view.xml 这是我的适配器 public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private LayoutInflater inflater; private List<Card> c

我的主要活动是imageview,我想在单击它时创建一张新卡,我想管理它们。当我单击imageview时,如何将卡片添加到版面。这是我的cardview版面xmlcard\u view.xml

这是我的适配器

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

private LayoutInflater inflater;
private List<Card> cards;

public MyAdapter (Context context,List<Card> cards)
{
    inflater=LayoutInflater.from(context);
    this.cards=cards;
}

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

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.textview.setText(cards.get(position).information);
}

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

public class MyViewHolder extends RecyclerView.ViewHolder
{
    TextView textview;
    CardView cardView;
    public MyViewHolder(View itemView) {
        super(itemView);
        textview=(TextView)itemView.findViewById(R.id.textView);
        cardView=(CardView)itemView.findViewById(R.id.cv);
    }
}
公共类MyAdapter扩展了RecyclerView.Adapter{ 私人充气机; 私人名单卡; 公共MyAdapter(上下文、列表卡) { 充气器=充气器。从(上下文); 这个。卡片=卡片; } @凌驾 公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图=充气机。充气(右布局。卡片视图,父视图,错误); MyViewHolder=新的MyViewHolder(视图); 报税表持有人; } @凌驾 公共无效onBindViewHolder(MyViewHolder,int位置){ holder.textview.setText(cards.get(position.information)); } @凌驾 public int getItemCount(){ 返回卡。大小(); } 公共类MyViewHolder扩展了RecyclerView.ViewHolder { 文本视图文本视图; 卡德维尤; 公共MyViewHolder(查看项目视图){ 超级(项目视图); textview=(textview)itemView.findViewById(R.id.textview); cardView=(cardView)itemView.findViewById(R.id.cv); } } 和主要

private MyAdapter adapter;
private List<Card> cards=new ArrayList<>();
private RecyclerView rv;
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rv = (RecyclerView)findViewById(R.id.rv);
    rv.setHasFixedSize(true);

    final LinearLayoutManager llm=new LinearLayoutManager(getApplicationContext());
    rv.setLayoutManager(llm);

    final Card current=new Card();
    adapter=new MyAdapter(this,cards);
    rv.setAdapter(adapter);


    iView=(ImageView)findViewById(R.id.imageView);

    iView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            current.information="Hello";
            cards.add(current);

            //mLayout.addView();
                }
            });
private-MyAdapter;
私有列表卡=新的ArrayList();
私人回收车;
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv=(RecyclerView)findViewById(R.id.rv);
rv.setHasFixedSize(真);
final LinearLayoutManager llm=新的LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(llm);
最终卡当前=新卡();
适配器=新的MyAdapter(此为卡);
rv.设置适配器(适配器);
iView=(ImageView)findViewById(R.id.ImageView);
iView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
current.information=“Hello”;
卡片。添加(当前);
//mLayout.addView();
}
});

更改在
列表视图
回收视图
中使用的适配器的下划线数据集时,必须调用适配器的
notifyDataSetChanged()
,更改才能生效。

因此,在代码中,在
onClick()
方法中将一张卡添加到卡数组中,然后调用
notifyDataSetChanged()
。 因此,改变这一点:

public void onClick(视图v){
current.information=“Hello”;
卡片。添加(当前);
//mLayout.addView();
}
}
为此:

public void onClick(视图v){
current.information=“Hello”;
卡片。添加(当前);
adapter.notifyDataSetChanged();
//mLayout.addView();
}
}

更改在
列表视图
回收视图
中使用的适配器的下划线数据集时,必须调用适配器的
notifyDataSetChanged()
,更改才能生效。

因此,在代码中,在
onClick()
方法中将一张卡添加到卡数组中,然后调用
notifyDataSetChanged()
。 因此,改变这一点:

public void onClick(视图v){
current.information=“Hello”;
卡片。添加(当前);
//mLayout.addView();
}
}
为此:

public void onClick(视图v){
current.information=“Hello”;
卡片。添加(当前);
adapter.notifyDataSetChanged();
//mLayout.addView();
}
}
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

private LayoutInflater inflater;
private List<Card> cards;

public MyAdapter (Context context,List<Card> cards)
{
    inflater=LayoutInflater.from(context);
    this.cards=cards;
}

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

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    holder.textview.setText(cards.get(position).information);
}

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

public class MyViewHolder extends RecyclerView.ViewHolder
{
    TextView textview;
    CardView cardView;
    public MyViewHolder(View itemView) {
        super(itemView);
        textview=(TextView)itemView.findViewById(R.id.textView);
        cardView=(CardView)itemView.findViewById(R.id.cv);
    }
}
private MyAdapter adapter;
private List<Card> cards=new ArrayList<>();
private RecyclerView rv;
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rv = (RecyclerView)findViewById(R.id.rv);
    rv.setHasFixedSize(true);

    final LinearLayoutManager llm=new LinearLayoutManager(getApplicationContext());
    rv.setLayoutManager(llm);

    final Card current=new Card();
    adapter=new MyAdapter(this,cards);
    rv.setAdapter(adapter);


    iView=(ImageView)findViewById(R.id.imageView);

    iView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            current.information="Hello";
            cards.add(current);

            //mLayout.addView();
                }
            });