2016-07-14 39 views
0

我想我應該問這樣一個新問題,但對於某些方面,我能得到的位置感謝標籤的好心人在How to get a label in the Android action bar動態無線電選項

enter image description here

所以現在我已經知道了,我希望用戶能夠點擊管理員按鈕,然後將其更改爲不同的模式(可能只是「管理員」,「用戶」,「來賓」以開始但未來可能會更多)。

當點擊右上角的按鈕時,如何獲取收音機框的列表?理想情況下,我希望能夠從Java類中動態地定義這些不同的模式,以便如果新類型被添加到數據庫中,它將自動被拾取。

如果有人能指出我在正確的方向,我會很感激。我看到了谷歌搜索的一些例子,但不幸的是,他們中沒有一個涉及我正在使用的定製可繪製類型 - 並且它們都沒有動態地填充無線電選項。

謝謝

+0

菜單你是什麼意思的動態?你列出了3個選項,所以這是一個靜態列表。 –

+0

未來可能會有更多。我有一個用戶類型的Sqlite表,我希望能夠添加一個條目到該表(例如說「超級管理員」),並讓它自動添加到這裏的收音機選項列表中,而不必進入並手動修改XML。 – b85411

+0

我明白了。在這種情況下,您必須使用Java構建'Menu'對象,並從'onOptionsItemSelected'中爲您的標籤充氣。 –

回答

0

您可能想要一個菜單​​,其中包含您的不同項目。

做這樣的事情,以創建菜單和虛增您的xml:

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

然後處理單擊事件:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.admin: 
      switchToAdminUI(); 
      return true; 
     case R.id.guest: 
      switchToGuestUI(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

而且你my_menu.xml可能是這個樣子:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
      android:id="@+id/menu_overflow" 
      android:icon="@drawable/abs_ic_menu_moreoverflow_material" 
      android:showAsAction="always"> 
      <menu> 
       <item 
        android:id="@+id/admin" 
        android:showAsAction="never" 
        android:icon="@drawable/ic_admin" 
        android:title="@string/admin"/> 
       <item 
        android:id="@+id/guest" 
        android:showAsAction="never" 
        android:icon="@drawable/ic_guest" 
        android:title="@string/guest"/> 
      </menu> 
     </item> 
</menu> 

您可以在上面看到android:showAsAction="always",這意味着它將始終顯示爲一個操作欄圖標,然後將子菜單項放在那裏。

試試吧,你也可以在此處詳細瞭解https://developer.android.com/guide/topics/ui/menus.html

+0

我相信OP想要保留標籤,而不是使用圖標 –

+0

他想擁有一個動態菜單,以便在未來添加更多項目。 但是,如果他想要將標籤保留在動作欄中,他可以通過不指定最上面的來做到這一點,而只是將菜單項作爲第一個

的直接子項。 他將在溢出菜單中獲取標籤。 – raxelsson

+0

我更喜歡使用'android:icon =「@ drawable' –