我为我的列表注册了上下文菜单:
this.registerForContextMenu(listView);
并实现所需的方法:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle("title");
String[] rssContextMenuItems = this.getResources().getStringArray(R.array.my_array);
for (int i = 0; i < rssContextMenuItems.length; i++)
menu.add(Menu.NONE, i, i, rssContextMenuItems[i]);
}
问题是我在列表中有一个自定义视图,其中包含一个复选框。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="false"
android:orientation="horizontal" >
<!-- some elements -->
<CheckBox
android:id="@+id/my_id"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:focusableInTouchMode="false" />
<!-- some more -->
</LinearLayout>
我已经尝试了android:focusable="false"
和android:focusableInTouchMode="false"
技巧,但是当我长按复选框时,它仍然不会触发onCreateContextMenu
方法。
有没有办法让这个工作?