0
我在ListView上使用ContextMenu。我面临的问题是我没有获取已在ListView中选择的项目上的ContextMenu,因为它根本不可触摸。ListView上下文菜单
我在ListView上使用ContextMenu。我面临的问题是我没有获取已在ListView中选择的项目上的ContextMenu,因为它根本不可触摸。ListView上下文菜单
解决! 我做的是"android:focusable="false"
我的ListView项目中的所有按钮,他们窃取焦点使选定的列表项不可触摸。 参考:click-events-listview-gridview
调用这里面onCreate():
registerForContextMenu(lv);
而且长按期间访问所选项目:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
if (v.getId() == R.id.lv) {
ListView lv = (ListView) v;
AdapterView.AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) menuInfo;
YourObject obj = (YourObject) lv.getItemAtPosition(acmi.position);
menu.add("One");
menu.add("Two");
menu.add("Three");
menu.add(obj.name);
}
}
我已经这样做了,我得到的ContextMenu但问题是,假设我已经下列项目列表诠释: 奶酪 奶酪乙 奶酪ç 当点击奶酪,我长按B和C可获得ContextMenu,但在长时间按下奶酪A时不会获得。 – 2014-10-18 08:32:56
show your adapter for listview – goonerDroid 2014-10-18 08:37:57
'listViewConversations =(ListView)view.findViewById(R.id.listViewConversationList); \t \t conversationListAdaptor = new ConversationListAdaptor(getActivity()); \t \t listViewConversations.setAdapter(conversationListAdaptor); \t \t listViewConversations.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL); \t \t listViewConversations.setOnItemClickListener(this); \t \t registerForContextMenu(listViewConversations);' 这是一个自定义适配器。 – 2014-10-18 08:42:02