簡體   English   中英

具有ActionBarSherlock的蜂窩前設備的ListView上下文操作欄

[英]ListView contextual action bar for pre honeycomb devices with ActionBarSherlock

要在Android Honeycomb和更高版本上使用上下文操作欄,我通常會檢查SDK_INT是否為11或更高版本,然后繼續執行mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

現在,我正在嘗試使用ActionBarSherlock將其移植到較舊的設備上。 現在,我使用CHOICE_MODE_MULTIPLE而不是CHOICE_MODE_MULTIPLE_MODAL ,並且在OnItemLongClickListener ,我設法調用getSherlockActivity().startActionMode(myActionModeCallback);

問題是,當我第一次長按ListView中的一個項目時,上下文操作欄會正確顯示。

但是,當我單擊另一個ListView項時,該項被選中,然后立即觸發其單擊偵聽器。 (我使用了該偵聽器,因此,當用戶單擊某個項目時,它會打開一個新的活動,用戶可以在其中編輯該項目,因此在這種情況下,該項目被選中並立即開始此新活動,並破壞了我的內容動作欄)

它不應該發生,但我想我做錯了什么。 我曾考慮過將OnListItemClick偵聽器設置為null,直到調用ActionMode.finish()為止,在這里我可以將其恢復為以前的偵聽器,但是我相信必須有一種更ActionMode.finish()方法。

據我了解您的問題,這是為您提供的解決方案。

您可以先檢查是否有選定的項目,例如

boolean hasCheckedItems = yourListAdapter.getSelectedCount() > 0;

然后您可以檢查以下情況

if (hasCheckedItems && ActionModeObject == null)
//there are some selected items, start the ActionMode 

else if (!hasCheckedItems && ActionModeObject != null)
// there no selected items, finish the ActionMode
ActionModeObject.finish();

if (ActionModeObject != null)
//Action Button Clicked

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM