问题描述
在“我的上一个活动”中,我获得了用户输入的项目名称,还可以在Gridview中选择“图像”,然后 想要将这些图像和商品名称传递到列表视图中
通过活动1传递用户输入
done.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String itemname = listname.getText().toString();
if (!TextUtils.isEmpty(listname.getText().toString())) {
startActivity(new Intent(getContext(),CheckHome.class).putExtra("data",itemname).putExtra("image",imageRes));
dismiss();
} else {
Toast.makeText(getContext(),"List Name not Empty ",Toast.LENGTH_SHORT).show();
}
}
});
要在回收者视图中将用户输入和选定的图像显示到ListView中
public class CheckHome extends AppCompatActivity {
ArrayList listimages;
ArrayList listname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_checkslate_home);
// get the reference of RecyclerView
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
// set a linearlayoutmanager with default vertical orientation
linearlayoutmanager linearlayoutmanager = new linearlayoutmanager(getApplicationContext());
recyclerView.setLayoutManager(linearlayoutmanager);
// call the constructor of CustomAdapter to send the reference and data to Adapter
CustomAdapter customAdapter = new CustomAdapter(this,listname,listimages);
recyclerView.setAdapter(customAdapter); // set the Adapter to RecyclerView
}
private class CustomAdapter extends RecyclerView.Adapter {
ArrayList listimages;
ArrayList listname;
Context context;
public CustomAdapter(Context context,ArrayList listimages,ArrayList listname ) {
this.listimages = listimages;
this.listname = listname;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder( ViewGroup parent,int viewType) {
// infalte the item Layout
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout,parent,false);
MyViewHolder vh = new MyViewHolder(v); // pass the view to View Holder
return vh;
}
@Override
public void onBindViewHolder( RecyclerView.ViewHolder holder,int position) {
//what to display Here
}
@Override
public int getItemCount() {
return 0;
}
}
private class MyViewHolder extends RecyclerView.ViewHolder {
// init the item view's
TextView name;
ImageView image;
TextView listcount;
public MyViewHolder(View itemView) {
super(itemView);
// get the reference of item view's
name = (TextView) itemView.findViewById(R.id.list_name);
image = (ImageView) itemView.findViewById(R.id.image_list);
listcount=itemView.findViewById(R.id.list_count);
}
}
}
解决方法
在Activity OnCreate()方法中,您可以像这样访问通过Intent传递的数据:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String itemName= bundle.getString("data");
}
在这里,我得到String,但是您也可以传递String数组。您可以将此值传递给RecyclerAdapter类:
CustomAdapter customAdapter = new CustomAdapter(this,listname,listimages);
但是不要通过意图传递大量数据。
,而且getItemCount()不应为0。您必须将一些大小传递给它。
像modelList.size()