java数据未显示在RecyclerView中
我试图通过一个名为Data()
的方法,以一种简单的方式创建一个带有回收器视图的项目列表,该方法有一个for循环,可以连续设置文本视图,但当我运行应用程序时,它会给我显示一个没有任何内容的白色屏幕
public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
RecyclerAdapter mAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView =(RecyclerView) findViewById(R.id.recycler_view);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setAdapter(mAdapter);
}
private class RecyclerAdapter extends RecyclerView.Adapter<MyViewHolder{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item,parent,false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.Data();
}
@Override
public int getItemCount() {
return 100;
}
}
private class MyViewHolder extends RecyclerView.ViewHolder{
public TextView mmTextView ;
private Button mButton;
public MyViewHolder(View itemView) {
super(itemView);
mmTextView = (TextView) findViewById(R.id.list_text_view);
mButton = (Button) findViewById(R.id.list_button);
}
private void Data (){
for (int i =0 ;i<=100;i++){
mmTextView.setText(String.valueOf("Text : " + i));
}
}
}
}
# 1 楼答案
您应该从itemView填充
mmTextView
,而不是从Activity
。它应该是mmTextView = (TextView) itemView.findViewById(R.id.list_text_view);
,因为它是holder的视图,所以可以使用holder.mmTextView.setText()
在onBindViewHolder()
方法中获得它。在Activity的onCreate()上的Infilate按钮,还可以方便地将数据传递给它的构造函数中的适配器,并将数据绑定到onBindViewHolder()
方法上的适配器,因为它知道它拥有哪些视图# 2 楼答案
在onBindViewHolder方法中,将数据绑定到textView: