我设置了一个上下文菜单,以便在我点击ListView中的项目
时短按public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Pick an action");
theView = v;
TextView desc = (TextView) theView.findViewById(R.id.class_description);
String description = (String) desc.getText();
TextView id = (TextView) v.findViewById(R.id.class_id);
Integer ID = Integer.valueOf(String.valueOf(id.getText()));
menu.add(1, ID, 0, getString(R.string.add_to_calender));
menu.add(2, ID, 0, getString(R.string.subscribe_alterations));
assert description != null;
if (!description.equals("")) {
menu.add(3, ID, 0, getString(R.string.view_description));
}
menu.add(4, ID, 0, getString(R.string.view_alterations));
}
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(getSherlockActivity(), "Clicked", Toast.LENGTH_SHORT).show();
registerForContextMenu(view);
view.setLongClickable(false);
getSherlockActivity().openContextMenu(view);
}
});
在我的listview适配器中,我有这条线切换按钮的可见性
holder.alter.setVisibility(View.VISIBLE);
if ((position % 2) == 0) {
holder.alter.setVisibility(View.INVISIBLE);
}
这是按钮
<Button
android:layout_width="20dp"
android:layout_height="wrap_content"
android:background="@drawable/alterations_btn"
android:textColor="@color/white"
android:layout_alignParentLeft="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold"
android:layout_marginRight="@dimen/padding_small"
android:id="@+id/is_alt"
android:layout_centerInParent="true"
android:text="@string/exclamation_point"/>
当按钮不可见时,上下文菜单可以正常工作,但是当它可见时,它不起作用。
谁能明白为什么?
答案 0 :(得分:1)
您应该记住的第一件事是,只要ListView元素中有可点击元素(如按钮或链接),它们就会控制点击事件。所以你的ListView将无法接受点击事件。
您可以做的是,为ListView中的Button设置focusable属性为false,看看是否有帮助。