我的活动中有一个 ListView。以下是我在 ListView 的行上设置 OnCLickListener 的方式
listview.setAdapter(new RowsArrayAdapter(this, rows));
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView ctv = (CheckedTextView) lv.getChildAt(position).findViewById(R.id.row_checkbox);
ctv.setChecked(true);
});
RowsArrayAdapter 的 getView() 方法如下:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.row_layout, parent, false);
CheckedTextView row = (CheckedTextView) rowView.findViewById(R.id.row_checkbox);
row.setText(values[position].getRow_no());
return rowView;
}
它适用于前 8 行。我检查了数组行的长度。它的 16 是正确的。但是当我向下滚动并单击某行(例如第 12 行)时,它会给我 NullPointerException。知道为什么会这样,我该如何解决。提前致谢。