アクティビティに 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が発生します。その理由と、どうすれば修正できますか。前もって感謝します。