14

ActionBarSherlock を使用して Android アプリに ActionMode を実装します。ABS を使用すると、API 11 より前に ActionMode を構築できますが、簡単な方法は、API 11 listView.setMultiChoiceModeListener( new MultiChoiceModeListener() ... より前のアプリではありません。API 11 より前にアクション モードのコンテキスト メニューを構築する良い方法はありますか? リスト アイテムを長押しして、複数のアイテムをクリックできる ActionMode を開始したいと考えています。クリックするだけで、リスト項目の詳細サイトが表示されます。私はこのregisterForContext()方法を使用しますが、これはシンプルで長いクリックになります。

だれか私に良いヒントを教えてください。

編集
私の質問の解決策は次のとおりです。長いアイテムをクリックすると、アクションモードがアクティブになり、これが変数に保存されます。アイテム クリック メソッドで、次の if-else ステートメントを実装します。

if( actionMode == null )
{
   // open new activity or update second fragment
   showDetails( itemPosition );
}
else
{
   // update ui or close CAB if no item selected
   showCAB( itemPosition );
}

メソッド showCAB( position ) は、selectedItem カウントを更新し、アイテムの背景を強調表示します。

4

2 に答える 2

12

わかりました、そのサイトのおかげで、今日それをやったばかりです:

基本的に、ListView の ChoiceMode をに設定し、ListView でチェックされている項目をチェックする を設定し、コンテキスト ActionBar を管理するプライベート クラスを実装するListView.CHOICE_MODE_MULTIPLE必要があります。onItemClickListenerActionMode.Callback

そのブログ投稿に行って、すべての詳細といくつかのコードを確認してください。

于 2012-07-22T17:01:09.863 に答える
5

You can also have a look at the Google I/O 2012 App. It's opensource, and uses ActionBarSherlock. They have developed a compatibility version of ActionMode related classes that work fine with ABS and on pre-honeycomb devices.

In particular, Take a look at:

Basically, just like ABS, their use native implementation of ActionMode when it is available and fallback to the custom implementation on older devices.

Hope it helps!

于 2013-01-12T18:51:14.263 に答える