我正在使用列表视图。 我使用适配器为该列表添加项目。 我正在尝试为列表的每个项目添加contextmenu,但是我对此有疑问。

这是我的代码

项目清单:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bgActivity"
android:orientation="horizontal" >

<TextView
    android:id="@+id/tv_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="10dp"
    android:textColor="@color/textColorContact"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/pick_options"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginRight="10dp"
    android:background="@drawable/app_icon"
    android:text="@string/label_options" >
</Button>   

</RelativeLayout>

名单 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ListView
    android:id="@+id/lst_contacts"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/bgContactItem" />

</RelativeLayout>

菜单 :

<menu 
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/CtxLblOpc1" android:title="OpcEtiqueta1"></item>
<item android:id="@+id/CtxLblOpc2" android:title="OpcEtiqueta2"></item>
</menu>

Java代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_contacts);

// Getting reference to listview
    ListView lstContacts = (ListView) findViewById(R.id.lst_contacts);
registerForContextMenu(lstContacts);
}

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


}


/** Actions for the ContextMenu items */
@Override
public boolean onContextItemSelected(MenuItem item) {
  //AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
      case R.id.CtxLblOpc1:
        Toast.makeText(getApplicationContext(), 
                         "Option 1",     
                         Toast.LENGTH_LONG).show();
          return true;
      case R.id.CtxLblOpc2:
        Toast.makeText(getApplicationContext(), 
                         "Option 2", 
                         Toast.LENGTH_LONG).show();
          return true;
      default:
          return super.onContextItemSelected(item);
   }
}

但我看不到上下文菜单,请帮助,谢谢

===============>>#1 票数:0

我想你应该尝试添加(在布局中)

android:descendantFocusability="blocksDescendants"

在您的布局中。 您可以在这里看看我建议您将上下文菜单与ActionMode.Callback一起使用。 如果您想举个例子,请看这里

注意:链接来自我的博客

  ask by user2287189 translate from so

未解决问题?本站智能推荐:

2回复

使用上下文菜单在自定义列表视图中突出显示所选项目?

我一直在尝试在此列表视图上设置背景色,并且在进行了多个教程之后,它仍然没有出现,但没有显示错误。 我得到的是一个在values文件夹中称为colors的xml文件: 哪个链接到可绘制文件夹中的xml: 我试过根据各种教程,将以下代码android:background:@i
1回复

如何将选定的列表视图项设置为contextmenu的标题?

我发现了几篇与我发布的内容有关的帖子,但是没有一篇告诉我如何使用数据库中填充的少量复杂listview来进行操作。 这就是我填充列表视图的方式: 到目前为止,代码可以正常工作,即长按鼠标就可以按预期填充listview了。我正在显示上下文菜单,例如: 现在我想将R.id.sen
2回复

如何在单击上下文菜单中获得单击列表视图的位置

我在xml中有一个已定义的listview,并通过适配器修改它来添加数据。.我想通过单击列表来显示上下文菜单,这已经完成了。.但是如何获得被单击列表的位置呢? 这是代码,这就是我称为上下文菜单的方式: 这是onCreateContextMenu方法: [加成] 提前
2回复

仅在未单击任何项​​目的情况下,在列表视图上打开上下文菜单

因此,由于有许多关于stackoverflow的答案,我们都知道当右键单击列表视图中的项目时如何打开上下文菜单。 即: 我的目标是当用户在列表视图中单击但不单击项目而是单击空白时打开另一个(不同的)上下文菜单。 (最好在单击列标题时不触发) 我首先想到的只是测试上述tmp_Se
1回复

如何将列表的2行收集为1以便调用ContextMenu

如何将列表的两行收集为通话上下文菜单的第一行 有人演示吗? 提前致谢。
1回复

Android:listview上的Contextmenu始终选择列表中的最后一项

我已经创建了一个列表视图,其中每个项目都从Mysql数据库中获取了多个值: 使用ContextMenu,我正在对列表视图中所选项目的值“ table”执行操作。 但是,deleteUser函数始终对列表视图中最后一项的“表”值起作用。 关于如何使所选项目的“表格”值起作用的
1回复

ListView和ContextMenu

是否可以使用ListView类中的上下文菜单来实现? 这里没有onContextItemSelected()方法。 我不想在Activity类中使用上下文菜单编写代码。 谢谢!
1回复

带有ContextMenu选项的ListView

首先,我的英语不太好。 我有一个这样的ListView和另一个TextView 。 我的问题是我想把contextMenu放在那里,但我不能。 我失去了很多时间,无法找到解决方案。 我使用了registerForContextMenu(listViewTotes) ,使用了onCre
2回复

片段中的ListView ContextMenu

在Fragment onCreateView中,我有以下代码 如果我写了registerForContextMenu(btn),那么它可以工作。但是长按列表视图行什么也没做。即使我的listView onItemClick侦听器也不起作用。如何解决它?任何人都可以帮助我,非常感谢。
2回复

Android:ContextMenu不显示

在我的应用程序中,我的主布局中有一个ListView。 在相应的活动中,我的onCreate中包含以下内容: ListView中的每个项目都是TallyItemView类型的,继承自LinearLayout。 我用来为上下文菜单充气的代码是: 从理论上讲,当您长按某个项目时,