上下文菜单标题 -> 从点击的ListView项目中获取

3
尝试根据所点击的ListView项设置上下文菜单标题。 ListView包含书签列表 -> FAVICON + 书签标题
@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中没有显示任何错误或当我运行应用程序时。

我也想以同样的方式获取网站图标...

感谢您的帮助!

1个回答

5

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

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

工作了!但它是CharSequence而不是String。谢谢! - Lior Iluz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接