2017-05-10 12 views
0

こんにちは私はコンテキストアクションバーにチェックボックスを追加しようとしています。 最初のアイデアは、Android設定することでした:それは働いていたが、このチェックボックスがコンテキストアクションバーにチェックボックスを追加する

case R.id.action_select_all: 
       Toast.makeText(context,"Clicked",Toast.LENGTH_SHORT).show(); 
       return true; 

第二のアイデアは、このよう

<item 
    android:id="@+id/action_select_all" 
    android:orderInCategory="2" 
    android:title="Item" 
    android:icon="@drawable/check_box" 
    android:checkable="true" 
    app:showAsAction="always"/> 

アイコン

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_selected="true" android:drawable="@drawable/checked"></item> 
    <item android:state_checked="true" android:drawable="@drawable/checked"></item> 
    <item android:drawable="@drawable/uncheck"></item> 
</selector> 
のアイコンを設定したクリックされた場合、私は取得することができませんactionLayout

私はトーストを取得しますが、アイコンは変更されません。私はどうすればいいのですか?私はactionLayoutを設定すると動作する必要があることを見つけたが、私はソース

EDIT取得することはできません。 I'amはこのような何かをしようとするが、それはまた

<item 
    android:id="@+id/action_select_all" 
    android:actionLayout="@layout/my_checkbox" 
    android:orderInCategory="2" 
    android:title="Item" 
    android:checkable="true" 
    app:showAsAction="always" /> 

とアクション

@Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     CheckBox checkBox=(CheckBox) item.getActionView(); 
     checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       Toast.makeText(context,"clicked",Toast.LENGTH_SHORT).show(); 
      } 
     }); 
} 
+0

[回答はこちら](http://stackoverflow.com)/a/32702944/5288316)は、多分それが助けることができる場合、あなたが項目を更新する必要があると言います –

+0

私はこの解決策を試みましたが、それは動作しません。タクシーではcheckBoxのアイコンが表示されますが、onItemActionClickedはこの項目を再確認しません –

答えて

0
を動作しません。

する必要があります

<item 
    android:id="@+id/check_all" 
    android:checkable="true" 
    android:showAsAction="always" 
    android:icon="@android:drawable/ic_menu_preferences" 
    android:title="@string/action_check"/>`` 

そしてそれを膨らませるアクティビティチェックされた状態の変更を反映するために、次のようなものがあります(それ以外の場合は、選択した状態が変更されません)。

public boolean onOptionsItemSelected(MenuItem item) { 

    switch(item.getItemId()){ 
    case R.id.check_all: 
     item.setChecked(!item.isChecked()); 
     return true; 
    } 
} 
+0

回答ありがとうございますが、私はチェックボックスのアイコンがありません。 –

関連する問題