Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何正确启动ListFragment的多选上下文操作栏(有问题)_Android_Android Listview_Android Listfragment_Onlongclicklistener_Contextual Action Bar - Fatal编程技术网

Android 如何正确启动ListFragment的多选上下文操作栏(有问题)

Android 如何正确启动ListFragment的多选上下文操作栏(有问题),android,android-listview,android-listfragment,onlongclicklistener,contextual-action-bar,Android,Android Listview,Android Listfragment,Onlongclicklistener,Contextual Action Bar,我有一个与简单的数组适配器关联的列表片段。ListView包含可检查项的列表,其XML布局如下所示: <ListView android:id="@id/android:list" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" android:l

我有一个与简单的
数组适配器关联的
列表片段
。ListView包含可检查项的列表,其XML布局如下所示:

<ListView android:id="@id/android:list"
              android:layout_width="match_parent"
              android:layout_height="0dip"
              android:layout_weight="1"
              android:layout_marginLeft="2mm"
              android:layout_marginRight="2mm"
              android:drawSelectorOnTop="false"
              android:longClickable="true"
              android:choiceMode="multipleChoiceModal"/>
我将
this
作为侦听器参数传入,因为我的
ListFragment
也实现了这些侦听器的回调

这是我遇到问题的回调:

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id
{
    activity.startActionMode(this);
    return true;
}
@覆盖
公共布尔值长单击(AdapterView父项、视图、整型位置、长id
{
activity.startActionMode(this);
返回true;
}
首先,永远不会调用
onitmlongclick
但是,当长时间单击列表项时,上下文操作栏(CAB)会启动并正常工作!

事实上,CAB在没有此回调的情况下可以正常启动!我的回调使用
activity.startActionMode(this)
,它将显示CAB,但不便于检查列表中的项目(我在其他地方测试过)

如何以编程方式正确处理长时间单击以启动CAB并方便检查列表项?


我正在使用主题中介绍的方法(他们只使用了LongClickListener,我也尝试过,但没有效果),但它似乎不起作用。

我猜您已经解决了这个问题,但对于后代来说,添加上下文菜单所需做的只是在根活动/片段下的onContextMenuCreated中添加上下文菜单项:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
  if (v.getId()==R.id.list) {
    String[] menuItems = getResources().getStringArray(R.array.menu);
    for (int i = 0; i<menuItems.length; i++) {
      menu.add(Menu.NONE, i, i, menuItems[i]);
    }
  }
}
@覆盖
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
if(v.getId()==R.id.list){
字符串[]menuItems=getResources().getStringArray(R.array.menu);
对于(int i=0;i
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
    ContextMenuInfo menuInfo) {
  if (v.getId()==R.id.list) {
    String[] menuItems = getResources().getStringArray(R.array.menu);
    for (int i = 0; i<menuItems.length; i++) {
      menu.add(Menu.NONE, i, i, menuItems[i]);
    }
  }
}