2015-10-06 92 views
-1

你好傢伙我試圖在menuItem中設置一個圖標。我讀了Android開發者博客,它說:如何在android上使用setIcon函數

public abstract MenuItem setIcon (int iconRes)  

更改與此項目相關的圖標。這個圖標並不總是顯示,所以標題應該足以描述這個項目。請參閱菜單以瞭解支持圖標的菜單類型。

此方法將設置圖標的資源ID,當顯示此項目時,該圖標將用於延遲獲取Drawable。

參數:iconRes要顯示的新圖標(作爲資源ID)。

返回:此項目可以調用附加setter。

我應該把參數作爲一個int。特別是我的圖標的ID。但我無法弄清楚我必須在哪裏找到這個ID。我只是把名爲「badIcon.ico」的圖標放在可繪製文件夾中。現在我應該繼續嗎? 謝謝你們

回答

0

如果你想圖標添加到靜態的方式你的菜單項,你可以寫

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/yourId" 
    android:icon="@drawable/badIcon" 
    android:title="@string/yourTitle" /> 
</menu> 

您可以添加圖標編程這樣

menu.add(0, MENU_TITLE, 0, "title").setIcon(R.drawable.badIcon); 
+0

是它這是我正在尋找的東西。這工作完美。爲了更加精確......在我看到的在線例子中,sintax寫道: menu.add(0,MENU_TITLE,0,243238).setIcon(98928299); 這個數字意味着什麼,以及如何使用這種方法設置圖標? –

+1

該數字可能是自動生成的類R的整數值。您可以通過按住Ctrl並單擊R.drawable.badIcon來查看這些數字。例如點擊控制按鈕的badIcon。你會在R類中看到Integer值...並且它沒有用,因爲這個數字是他們項目資源的int值。如果你得到了你正在搜索的東西,那麼請勾選正確的按鈕,以便其他人知道你得到了你的答案..希望這會有所幫助.. –

+0

我試圖按住Ctrl和LeftClick的圖標(它應該也適用於佈局我猜)但沒有任何反應。你能解釋我,我怎麼能看到我的情況下這些數字..謝謝你在任何情況下的答案:) –

1

這就是這麼簡單.. .. 請參閱本教程.. here

創建menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:id="@+id/next" 
       android:icon="@drawable/ic_next" 
       android:title="@string/next" /> 
     <item android:id="@+id/previous" 
      android:icon="@drawable/ic_previous" 
      android:title="@string/previous" /> 
     <item android:id="@+id/list" 
      android:icon="@drawable/ic_list" 
      android:title="@string/list" /> 
</menu> 

那麼現在就可以設置圖標菜單上現在

CreateOptionMenu

public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

而且得到該菜單..

public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case R.id.next: 
      Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option", 
         Toast.LENGTH_SHORT).show(); 
      return true; 
     … 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
相關問題