【发布时间】:2013-06-21 11:18:36
【问题描述】:
这是在 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 时,我可以从 Database 中获取该 listitem 记录的 rowid。所以在获得 rowwid 后,我可以从中删除记录listview 和来自 db 并且可以编辑信息
【问题讨论】:
-
问谷歌而不是stackoverflow?您正在寻找“long id”,或者您可以在 getView 中设置手动“id”视图 setTag() 并通过 v.getTag 在 clicklistener 中获取它
标签: java android sqlite custom-adapter