public class SHAnswerListActivity extends Activity implements DownloadListener{ private int sendIndex; boolean usedIndex = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getIntentMessage(); } private void getIntentMessage() { Intent intent = getIntent(); sendIndex = intent.getIntExtra("INDEX",-1); checkPreferenceWriteIndex(); invalidateOptionsMenu(); } private void checkPreferenceWriteIndex() { SharedPreferences indexPref = getSharedPreferences(PreferenceConfig.PREFERENCE_WRITE_INDEX, Context.MODE_PRIVATE); if (indexPref != null) { usedIndex = indexPref.getBoolean(""+sendIndex, false); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.actionbar_answer, menu); if (usedIndex) { menu.findItem(R.id.menu_write).setVisible(false); } //remove icon, title in actionbar getActionBar().setDisplayShowHomeEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); return super.onCreateOptionsMenu(menu); }actionbar icon menu 를 컨트롤 해야 할 때가 있습니다. invalidateOptionsMenu(); 를 호출해서 actionbar 를 reload 하는 방식으로 구현해야 합니다. 그리고 menu.findItem 를 통해 resource id 값을 찾고 setVisible 함수를 통해 visible/gone 을 선택하면 됩니다.
2013. 6. 28. 11:15