新人学习中,求各位老大不吝赐教。我看RecyclerView绑定数据时一般是用RecyclerViewAdapter在onBindViewHolder中赋值给ViewHolder中找到的控件,如果我想根据输入的数据动态添加控件该如何做呢?
比如我想添加一个textView,
item布局:
<LinearLayout android:id="@+id/mLinearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { TextView textView;
textView=new TextView(context);
textView.setText("oo");
((MyViewHolder)holder).mLinearLayout.addView(textView);
} public class MyViewHolder extends RecyclerView.ViewHolder{
private LinearLayout mLinearLayout;
public MyViewHolder(View itemView) {
super(itemView);
mLinearLayout = (LinearLayout) itemView.findViewById(R.id.mLinearLayout);
}
}
textView=new TextView(context);这句报错java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference该如何做?新人一共只有200分了,多谢指教
比如我想添加一个textView,
item布局:
<LinearLayout android:id="@+id/mLinearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { TextView textView;
textView=new TextView(context);
textView.setText("oo");
((MyViewHolder)holder).mLinearLayout.addView(textView);
} public class MyViewHolder extends RecyclerView.ViewHolder{
private LinearLayout mLinearLayout;
public MyViewHolder(View itemView) {
super(itemView);
mLinearLayout = (LinearLayout) itemView.findViewById(R.id.mLinearLayout);
}
}
textView=new TextView(context);这句报错java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference该如何做?新人一共只有200分了,多谢指教
//加载布局文件
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout_yaoyao,parent,false);
MyViewHolder vh = new MyViewHolder(v);
TextView textView;
// for(int i=0;i<labels.length;i++){
textView=new TextView(context);
// textView.setText(labels[i]);
textView.setText("oo");
vh.mLinearLayout.addView(textView);
return vh;
}