2013-08-17 69 views
2

我正在使用sherlock操作欄。 我在操作欄上有2個項目。選擇項目(活動)時,我想更改圖標的圖像。點擊更改Android Action Bar菜單項的圖標

這是我關於Java

@Override 
    public boolean onPrepareOptionsMenu (Menu menu){ 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.menutes, menu); 
    todaySched=menu.findItem(R.id.todaySched); 
    if(todaySched.isEnabled()){ 
     todaySched.setIcon(R.drawable.calendarselected); 

    } 
    return true; 
} 

代碼,但是當我這樣做雙擊圖標變,圖標不會改變都不是。 有人可以幫忙嗎?

回答

2

使用上onOptionsItemSelected方法

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.todaySched: 

       // put your code here to change the icon 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

您可能需要包括在ActionBar福爾摩斯庫正確的命名空間,以保證它覆蓋了正確的菜單項。因此,該方法開始看起來就像這樣:

@Override 
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) 
+0

如果我把它放在onOptionsItemSelected,操作欄不會刷新,所以圖標不會改變 –

+1

你延長SherlockActivity或SherlockFragmentActivity ..? ..因爲你可以調用這個方法invalidateOptionsMenu() – Daveloper87

+0

SherlockActivity。 我只是再試一次,它的工作原理!謝謝 –