我正在尝试将表布局与 recyclerView 一起使用,但它给出了错误:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TableRow.addView(android.view.View)' 在空对象引用上。有我的适配器类:public class CompanyAdapter extends RecyclerView.Adapter<CompanyAdapter.bookViewHolder> {ArrayList<DataClass> arrayList;TextView deposit;TextView purchase;TextView date;TableRow tableRow;TableLayout tableLayout;public CompanyAdapter(ArrayList<DataClass> arrayList){ this.arrayList = arrayList;}@Overridepublic bookViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { Context context = parent.getContext(); View view = LayoutInflater.from(context).inflate(R.layout.company_list_item,parent,false); return new bookViewHolder(view);}@Overridepublic void onBindViewHolder(bookViewHolder holder, int position) { DataClass dataClass = arrayList.get(position); holder.bind(dataClass); //bookNameTV.setText(dataClass.getBook()); //authorNameTV.setText(dataClass.getAuthor());}@Overridepublic int getItemCount() { return arrayList.size();}public class bookViewHolder extends RecyclerView.ViewHolder{ public bookViewHolder(View itemView) { super(itemView); deposit = (TextView) itemView.findViewById(R.id.deposit); purchase = (TextView) itemView.findViewById(R.id.purchase); date = (TextView) itemView.findViewById(R.id.date); tableLayout = (TableLayout) itemView.findViewById(R.id.maintablelayout); }还有一个问题,有没有更好的方法可以在不使用任何库的情况下将 tableLayout 与 recycler View 一起使用?谢谢..!
3 回答
忽然笑
TA贡献1806条经验 获得超5个赞
TableRow
是一个实例变量,所以 JAVA 会在运行时用空值初始化它,你不能用空值调用任何方法。您必须将一个对象分配给TableRow
引用变量。
喜欢:
tableRow=new TableRow(context);
DIEA
TA贡献1820条经验 获得超2个赞
您必须创建新的 TableRow
使用此代码
TableRow tableRow=new TableRow(context);
tableRow.addView(deposit);
tableRow.addView(purchase);
tableRow.addView(date);
if(tableRow.getParent()!=null){
((ViewGroup)tableRow.getParent()).removeView(tableRow);
}
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
TableLayout.LayoutParams.FILL_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT));
添加回答
举报
0/150
提交
取消