2017-02-09 25 views
2

私は、チェックボックスのメニュー項目のタイプを持つメニューを持っています。それは何も引き起こされません。ここに私のmenu.xmlオプションメニューのチェックボックスイベントの処理:Android

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/delete" 
    android:actionViewClass="android.widget.CheckBox" 
    android:checkableBehavior="single" 
    android:title="All" 
    android:titleCondensed="All" 
    app:showAsAction="ifRoom"></item> 
</menu> 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.delete: 
      Toast.makeText(this,"Hello",Toast.LENGTH_SHORT).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

任意のアイデアをonOptionsItemSelected私であるここにいるのですか?

答えて

2

あなたはsetOnCheckedChangeListener

このような
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    CheckBox checkBox = (CheckBox) menu.findItem(R.id.delete).getActionView(); 
    checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if (isChecked) { 
       // perform logic 
      } 
     } 
    }); 

    return true; 
} 

を聞くとapp:actionViewClass="android.widget.CheckBox"

+0

に変更android:actionViewClass="android.widget.CheckBox"を覚えていることにより、onCreateOptionsMenu内のチェックボックスのクリックを処理することができます 'OnCheckedChangeListener'オブジェクト' checkbox'では ヌル与えていた設定中にいるようだ:java.langでの.NullPointerException:ヌルオブジェクトリファレンスで仮想メソッド 'void android.widget.CheckBox.setOnCheckedChangeListener(android.widget.CompoundButton $ OnCheckedChangeListener)'を呼び出そうとしました – shadygoneinsane

+0

これはman、ありがとうございます。コンテキスト・アクション・バーの戻るボタンをチェック・ボックスに変更する方法はありますか?リストビューを長押ししたときと同じように、すべて選択チェックボックスが表示されます。 – Meowok

+0

@shadygoneinsane正しいことをありがとう、もう一度私の答えを確認してください –

関連する問題