我想知道如何在Java中使用枚舉。我正在研究Android的配方應用程序。我有一個TabHost中有四個選項卡的屏幕,並希望通過命名常量來引用它們,我相信最好通過枚舉來完成它。Android Java:使用枚舉
private enum mTab {
TAB_NAME(0), TAB_INGREDIENT(1), TAB_STEP(2), TAB_MEDIA(3);
final int numTab;
private mTab(int num){
this.numTab = num;
}
public int getValue(){
return this.numTab;
}
};
現在我想爲每個選項卡創建一個不同的菜單。例如,對於TAB_INGREDIENT,我想要一個名爲「添加成分」的菜單選項,而對於TAB_MEDIA,我想要一個名爲「添加圖像」的菜單選項。
我通過onPrepareOptionsMenu()創建菜單,像這樣
public boolean onPrepareOptionsMenu(Menu menu) {
// Clear menu before showing new menu
menu.clear();
super.onPrepareOptionsMenu(menu);
// Create new menu based on current tab
MenuInflater inflater = getMenuInflater();
int tab = getTabHost().getCurrentTab();
switch (tab) {
...
}
return true;
}
的問題是,我不知道要放什麼東西在switch語句。更具體地說,我不知道如何比較「選項卡」,它是一個對應於當前選定選項卡的整數,與枚舉元素進行比較。
這個問題太老了,但我希望我的評論能幫助別人。在Android中不建議使用枚舉,最好使用int常量。特別是對於這個問題int常量比枚舉更好。另外,我們可以使用'IntDef'註釋,如下所述http://blog.shamanland.com/2016/02/int-string-enum.html –