在自定义适配器中传递arrayList

时间:2016-06-01 19:25:47

标签: java android arraylist

我在CustomAdapter中调用Arraylist,其中custom_row.xml包含所需的行。我想先将两个元素并排放在一行,然后是另一行中的第三和第四个元素,依此类推。 我写了这段代码,只是为了打印Arraylist中的第一个元素。如果我删除评论然后运行,我会得到与评论时相同的错误。我不知道自己哪里出错了。

或者也许是正确的方式。

class CustomAdapter extends ArrayAdapter {

List<String> names;
LayoutInflater inflater;
Context context;
public CustomAdapter(Context context,  List<String> names) {
    super(context,R.layout.custom_row ,names);
   this.names=names;
    this.context=context;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {


   inflater=LayoutInflater.from(getContext());
    View customview=inflater.inflate(R.layout.custom_row,parent,false);
    String data=names.get(position);
   //String data1=names.get(position+1);
    TextView tv=(TextView)customview.findViewById(R.id.TeamA);
    tv.setText(data);
   //TextView tv1=(TextView)customview.findViewById(R.id.TeamB);
    //tv1.setText(data1);
    return customview;
}

我收到此错误 -      java.lang.NullPointerException:尝试调用虚方法&#39; void android.widget.TextView.setText(java.lang.CharSequence)&#39;在null对象引用上                                                                                          在com.example.CustomAdapter.getView

1 个答案:

答案 0 :(得分:1)

问题是因为tv为空,这是因为findViewById(R.id.TeamA)返回null,所以..检查TeamA中是否存在R.layout.custom_row