我创建了ContextMenu
并使用了以下代码:
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
每按一次列表项,返回第一行值。请建议,如何获得按行值。
答案 0 :(得分:0)
我认为您必须将光标移动到指定位置。在从中获取数据之前。
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);
答案 1 :(得分:0)
如何设置位置?
为了获得列表视图中的位置,您可以将以下两行添加到项目选择方法的开头:
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
}