Android 使用recyclerview创建一张卡
我的主要活动是imageview,我想在单击它时创建一张新卡,我想管理它们。当我单击imageview时,如何将卡片添加到版面。这是我的cardview版面xmlcard\u view.xml 这是我的适配器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
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();
}
});