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