.setEnabled()を使用してオプションメニューボタンを有効/無効にしますか?

StackOverflow https://stackoverflow.com/questions/7375101

質問

私はこのようなことをしようとしています:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    //multiListener = false;
    menu.add(0,START_DELETE,0, "Delete selected..").setEnabled(multiListener);
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.multiselect:
        if(multiselect == 0) { multiselect = 1;
        multiListener = true;
        Log.d("DH", "index="+multiListener);
        }
        else if(multiselect == 1) { multiselect = 0; multiListener = false;
        Log.d("DH", "index="+multiListener);
        }
        fillData();
        return true;
    case START_DELETE:
        Toast.makeText(Notepadv3.this, "Pressed delete", Toast.LENGTH_SHORT).show();
        return true;
    default: 
        return super.onOptionsItemSelected(item);

    }
}

基本的に、multilistener = trueの場合; 「削除した選択を削除します。」とプレス可能な場合は、グレーを灰色にします...

このシンプルなこと、私と一緒に運動したくない、

どういうわけか...ボタンは常にグレイアウトされていますが、ログには本当です...

誰でも、何かを知っていますか?

役に立ちましたか?

解決

電話する必要があります setEnabled() 繰り返しますが、アイテムの状態を変更します。その状態は変数にバインドしません。この方法は、呼び出す必要があります onPrepareOptionsMenu().

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top