-1

可能重复:
如何使用光标在上下文菜单中获取行值?

我创建了一个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

通过按任何列表项,它每次都返回第一行值。请建议,如何获得按下的行值。

4

2 回答 2

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);
于 2013-01-08T10:08:50.073 回答
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
    }
于 2013-01-08T10:34:09.813 回答