2014-03-31 31 views
0

我做一个列表视图,并从数据库中获取数据。每个视图或行已经从数据库的价值机器人通过id来的ArrayList

但怎么也通过ID从数据库列表视图

所以当我点击一个一个观点我得到的ID,做我喜欢的事情(删除...其中id = ...)

this how it looks

这是我的代码谢谢:

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

编写自定义列表适配器。这是一个很好的教程。 http://www.vogella.com/tutorials/AndroidListView/article.html – Ne0

回答

0

首先,你必须在你的listview XML文件中存储id。有一个这样的字段,其次是你的其他字段。

<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); 
     }