Можете ли вы поставить флажок в операторе switch для onOptionsItemSelected? - PullRequest
0 голосов
/ 27 мая 2019

Я следовал части последнего примера здесь: Как добавить флажок на панели инструментов с пользовательским фоном - android , чтобы добавить пользовательскую звездочку в качестве флажка на моей панели инструментов.

Однако,Я хотел бы поставить флажок внутри оператора switch onOptionsItemSelected, но любой код внутри оператора switch, такой как R.id.star_favorite, не вызывается.Есть ли лучший способ вызвать updateFavorite () и все еще иметь возможность использовать мой пользовательский флажок звездочки?@ Ramtin

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    checkBox = (CheckBox) menu.findItem(R.id.star_favorite).getActionView();
    checkBox.setButtonDrawable(R.drawable.favorite_checkbox);
    checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.e("onClick", "favorite button has been clicked");
            currentQuoteIsFavorite = !currentQuoteIsFavorite;
            updateFavorite(currentQuoteIsFavorite);
        }
    });
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
        case R.id.star_favorite:
            //already tried putting code like updateFavorite() inside here but it's not called
        case R.id.share_quote:
            Log.e("INSIDE SHARE", currentQuote);
            shareQuote();
            break;
        case R.id.menu:
            break;
    }
    return super.onOptionsItemSelected(item);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...