通过上下文菜单获取列表视图项信息

时间:2014-04-12 21:02:26

标签: android

我有一个列表视图,显示一个id名称描述等...我创建了一个上下文菜单,用于该列表,我想通过上下文菜单获取特定行的名称。我该怎么做

  ListAdapter adapter = new SimpleAdapter(
                        AllProductsActivity.this, productsList,
                        R.layout.list_item, new String[] { TAG_ID,
                                TAG_NAME, TAG_DATA, TAG_DATA2, TAG_QTD},
                        new int[] { R.id.id, R.id.descricao, R.id.data, R.id.data2,      R.id.qtd});
                // updating listview
                setListAdapter(adapter);
            }
        });

    }

}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
    getMenuInflater().inflate(R.menu.context, menu);
}

public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch(item.getItemId()) {
    case R.id.item1:
        long id = getListAdapter().getItemId(info.position);

         Toast.makeText(getApplicationContext(),String.valueOf(id), 
                 Toast.LENGTH_SHORT).show();
          return true;
    case R.id.item2:

        return true;
    default:
          return super.onContextItemSelected(item);
    }
}

}

2 个答案:

答案 0 :(得分:0)

您应该使用自定义列表适配器。

然后你可以使用onItemClickListener获取被点击的项目,因此名称等...

以下是自定义适配器的教程:

http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-baseadapter/

答案 1 :(得分:0)

您想注册上下文菜单,例如:registerForContextMenu(yourListView)