Android 如何在上下文菜单中获取行值
可能重复:Android 如何在上下文菜单中获取行值,android,android-intent,android-contextmenu,Android,Android Intent,Android Contextmenu,可能重复: 我创建了一个上下文菜单,并使用了以下代码: public boolean onContextItemSelected(MenuItem item){ switch(item.getItemId()) { case R.id.Show_Note: //AdapterView.AdapterContextMenuInfo info= (AdapterView.Adap
我创建了一个
上下文菜单
,并使用了以下代码:
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId())
{
case R.id.Show_Note:
//AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
Intent i=new Intent(this, ShowNote.class);
Cursor c = (Cursor) getListView().getItemAtPosition(position);
int item_id = c.getInt(0);
i.putExtra("item_id", item_id );
startActivity(i);
break
它通过按任意列表项每次返回第一行值。请建议如何获得按下的行值。我认为您必须将光标移动到指定位置。在从中获取数据之前
c.moveToPosition(position);
在代码中添加这一行,并让我知道发生了什么
您的代码类似于:
Intent i = new Intent(this, ShowNote.class);
Cursor c = (Cursor) getListView().getItemAtPosition(position);
c.moveToPosition(position); // This line need to be added here
int item_id = c.getInt(0);
i.putExtra("item_id", item_id );
startActivity(i);
如何设置位置
为了获得列表视图中的位置,可以在项目选择方法的开头添加以下两行:
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
int position = info.position;
switch(item.getItemId())
{
case R.id.Show_Note:
//AdapterView.AdapterContextMenuInfo info=
(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
Intent i=new Intent(this, ShowNote.class);
Cursor c = (Cursor) getListView().getItemAtPosition(position);
int item_id = c.getInt(0);
i.putExtra("item_id", item_id );
startActivity(i);
break
}
是的,谢谢…你也可以让我知道如何删除该行。因为我有数据库方法以及如何在上下文菜单中调用delete方法???谢谢,你能告诉我如何删除行吗???你有为你的数据库编写删除查询吗?嗨,谢谢,是的,完成了show note,但你能告诉我删除注释吗。如何使用关联菜单删除一行。