ContextMenu标题 - >来自点击的listView项目

时间:2010-09-16 20:52:29

标签: android

尝试根据ListView单击项设置ContextMenu标题。 ListView包含书签列表 - > FAVICON + BOOKMARK TITLE

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
      super.onCreateContextMenu(menu, v, menuInfo);
      menu.add(0, EDIT_ID, 0, R.string.menu_edit);
      menu.add(0, DELETE_ID, 0, R.string.menu_delete);
      menu.add(0, SHARE_ID, 0, R.string.menu_share);

      AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
      View itemID = (info.targetView);
      menu.setHeaderTitle("bla" + itemID);
    }

当我运行此代码时,它会显示android.widget.RelativeLayout@423d2389或其他内容,如果我将itemID更改为String itemID = ((TextView) info.targetView).getText().toString();,即使Eclipse中没有显示任何错误,我也会在长时间点击时关闭当我运行应用程序时。

我也想以同样的方式获得favicon ......

感谢帮助!

1 个答案:

答案 0 :(得分:5)

info.targetView是RelativeLayout,而不是TextView。将android:id属性添加到标题TextView(例如android:id =“@ android:id / title”),然后通过以下方式获取字符串值:

String title = ((TextView) info.targetView.findViewById(android.R.id.title)).getText();