Java 如何使RecyclerView在模拟器中实际打印出ArrayList?
在Android Studio中,我必须用ArrayList和一些图片创建一个RecyclerView。我遵循了一些教程和Android文档,所以我设法编写了一个可以运行的代码。但是,仿真器除了背景色之外什么也不显示 因此,在MyAdapter.java中,我创建了一个onBindViewHolder方法,其中的数据应该提供给ViewHolder。要让程序真正写出Arraylist,我需要做什么更改 MyAdapter.java如下所示:Java 如何使RecyclerView在模拟器中实际打印出ArrayList?,java,android,arraylist,Java,Android,Arraylist,在Android Studio中,我必须用ArrayList和一些图片创建一个RecyclerView。我遵循了一些教程和Android文档,所以我设法编写了一个可以运行的代码。但是,仿真器除了背景色之外什么也不显示 因此,在MyAdapter.java中,我创建了一个onBindViewHolder方法,其中的数据应该提供给ViewHolder。要让程序真正写出Arraylist,我需要做什么更改 MyAdapter.java如下所示: public class MyAdapter e
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private LayoutInflater inflater;
private Context context;
List<DataSource> data = Collections.emptyList();
public MyAdapter(Context context, List<DataSource> tada){
this.context = context;
inflater = LayoutInflater.from(context);
this.data = tada;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = inflater.inflate(R.layout.custom_row,viewGroup, false);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder viewHolder, int position) {
//The position of the item within the adapter's data set.
DataSource info = data.get(position);
viewHolder.text.setText(info.name);
viewHolder.icon.setImageResource(info.picid);
}
@Override
public int getItemCount() {
return data.size();
}
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView text;
ImageView icon;
public MyViewHolder(View itemView) {
super(itemView);
text = (TextView) itemView.findViewById(R.id.editText2);
icon = (ImageView) itemView.findViewById(R.id.listIcon);
Log.i("MyAdapter", "MyViewHolder()" + " " + String.valueOf(getPosition()));
}
}
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_recycler_view);
recyclerView = (RecyclerView) findViewById(R.id.drawerList);
myAdapter = new MyAdapter(this, getdatalist());
recyclerView.setAdapter(myAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
}
这是阵列,也是主阵列:
public List<DataSource> getdatalist(){
List<DataSource> data = new ArrayList<>();
String[] name = {"Black Pearl", "Blue Monday", "Gray Worm", "Green Lantern", "Baby Blue", "Clockwork Orange", "Purple Haze", "Red Socks", "Violet Teacher", "Yellow Claws"}
int[] icon = {R.drawable.black, R.drawable.blue, R.drawable.gray, R.drawable.green, R.drawable.light_blue, R.drawable.orange, R.drawable.purple, R.drawable.red,R.drawable.violet, R.drawable.yellow }
for(int i =0; i<name.length && i<icon.length; i++){
DataSource info = new DataSource;
info.name = name[i];
info.picid = icon[i];
}
return data;
}
在getDataList方法中,您创建了项目,但没有将它们添加到ArrayList中