在android中使用带有listview的contextmenu

新手上路,请多包涵

我正在开发一个 android 应用程序。我将有一个列表视图,并且我设置了一个上下文菜单,以便在长按列表视图项目时出现。我如何从选定的列表视图项目中获取项目(比如来自列表视图文本视图的文本)之后选择了上下文菜单中的一个动作,以便我可以处理它?这是一些代码:

 protected void onCreate(Bundle savedInstanceState) {
    -------
    lv1 = (ListView) findViewById(R.id.listings);

    registerForContextMenu(lv1);
    lv1.setOnItemClickListener(this);

}

和 onCreateContextMenu:

 public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
            .getMenuInfo();
    switch (item.getItemId()) {
    case R.id.watch:
        String name = "";
        return true;
    case R.id.buy:
        return true;
    default:
        return super.onContextItemSelected(item);
    }
}

我想从列表项中的文本视图中获取文本。我该如何实现?

原文由 mungaih pk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 701
1 个回答

上述答案非常准确,并且针对所提供的案例。话虽如此,我被带到这里时使用了 convertView 为我的 listview 并且我正在回答那些也被带到这里的人。

如果您的 LISTVIEW 正在使用 convertView 并膨胀一个单独的布局(比如 list_MyItem.xml ),直接修改 list_MyItem.xml :343a 到 —768769deff8ba43a

 android:longClickable="true"

例如,如果列表视图正在填充按钮,请按如下方式修改按钮:

 <Button
    android:id="@+id/myButton"
    .
    .
    .
    android:longClickable="true"
/>

原文由 T.Woody 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题