我正在进行listview并从数据库中获取数据..每个视图或行都有来自数据库的值
但是如何将id也从数据库传递到列表视图
所以,当我点击一个视图时,我会获得ID并执行我的操作(删除...其中id = ...)
这是我的代码谢谢:
private void setAdapter() {
dbHelper=new DatabaseHelper(this);
Cursor c = dbHelper.getcursor("M_table","M_title");
String s="";
Integer i=0;
ArrayList<String> values = new ArrayList<String>();
if (c != null ) {
if (c.moveToFirst()) {
do {
i++;
int Mid = c.getInt(c.getColumnIndex("Mid"));
String M_title = c.getString(c.getColumnIndex("M_title"));
values.add(M_title);
}while (c.moveToNext());
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.listview,values);
setListAdapter(adapter);
adapter.notifyDataSetChanged();
}
答案 0 :(得分:0)
首先,你必须将你的id存储在listview XML文件中。有一个像这样的字段,后跟你的其他字段。
<TextView
android:id="@+id/tv_Id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
然后在适配器代码中,您必须从此字段中检索id并使用包将其传递给下一个活动。
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String clickid = ((TextView) view.findViewById(R.id.tv_Id))
.getText().toString();
Bundle job_info = new Bundle();
id_info.putString("key", clickid);
Intent i = new Intent(CurrentActivity.this, NextActivity.class);
i.putExtras(id_info);
startActivity(i);
}