スタック オーバーフローに関する質問を調べましたが、解決策が見つかりません。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.themenu, menu);
MenuItem item = menu.findItem(R.id.menu_settings);
MenuItem item2 = menu.findItem(R.id.menu_save);
item.setVisible(isdown);
item2.setVisible(isdown);
return true;
}
これにより、メニュー項目が表示されます (item1 と item2)。onclickは正常に動作します
public void inflateTextarea() {
if(isdown == true) {
isdown = false;
LinearLayout tl = (LinearLayout)findViewById(R.id.content);
tl.setVisibility(View.VISIBLE);
ScaleAnimation scale = new ScaleAnimation(1, 1, 0, 1);
scale.setFillAfter(true);
scale.setDuration(500);
tl.startAnimation(scale);
}
}
次に、これにより isdown ブール値が false に設定されます。スタックの人々は、クリックするたびにonPrepareOptionsMenuが起動するはずだと言いますが、そうではありません。onclick 関数で 1 つのメニュー項目を非表示にできます
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_settings:
Log.v("Log:","edit_item pressed");
return true;
}
}
しかし、非表示にする必要があるメニュー項目と表示したいメニュー項目が複数あります。これについてどうすればいいですか?