AndroidでBaseAdapterを使用して正常に動作するカスタムリストビューのコードは次のとおりです。
public class CustomListAdapter extends BaseAdapter {
private ArrayList<TaskClass> _listData;
Context _c;
public CustomListAdapter(Context context, ArrayList<TaskClass> listData) {
_listData = listData;
_c = context;
}
@Override
public int getCount() {
return _listData.size();
}
@Override
public Object getItem(int position) {
return _listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position,View convertView,ViewGroup parent) {
View v = convertView;
if (v == null)
{
LayoutInflater layoutInflator = (LayoutInflater) _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = layoutInflator.inflate(R.layout.listview_row, null);
}
TextView titleText = (TextView)v.findViewById(R.id.holdTitleText);
TextView catText = (TextView)v.findViewById(R.id.holdCatText);
TextView descText = (TextView)v.findViewById(R.id.holdDescText);
TextView dateText = (TextView)v.findViewById(R.id.holdDateText);
//CheckBox checkBoxForEachItem = (CheckBox)v.findViewById(R.id.)
TaskClass taskClassInstance = _listData.get(position);
titleText.setText(taskClassInstance.getTitle());
catText.setText(taskClassInstance.getTaskCategory());
descText.setText(taskClassInstance.getDescription());
dateText.setText(taskClassInstance.getTaskDate());
return v;
}
}
およびカスタムアダプターを使用してリストビューをバインドするアクティビティ内:
listViewInstance.setAdapter(new CustomListAdapter(getApplicationContext(),taskClasslistInstance));
ここで、「taskclasslistinstance」はDBからのデータを含む私の配列リストであり、正常に機能するようになりました。listitemclickの関数を記述して、ユーザーが任意のlistitemをクリックしたときにデータベース からそのlistitemレコードのrowidを取得できるようにする必要があります.rowwidを取得した後、レコードを削除できますリストビューとデータベースから、情報を編集できます