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()