Я следовал части последнего примера здесь: Как добавить флажок на панели инструментов с пользовательским фоном - 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);
}