有一種簡單的方法來使用值strings.xml翻譯菜單選項卡的文本? 由於菜單文本在java上設置,我沒有看到一種方法來做到這一點。Android - 翻譯菜單選項卡
如果沒有,哪種方法更好?
解決:
方法來恢復的字符串:的getString(R.string.tela_principal_menu_tab_um);
有一種簡單的方法來使用值strings.xml翻譯菜單選項卡的文本? 由於菜單文本在java上設置,我沒有看到一種方法來做到這一點。Android - 翻譯菜單選項卡
如果沒有,哪種方法更好?
解決:
方法來恢復的字符串:的getString(R.string.tela_principal_menu_tab_um);
無論您的菜單是使用XML還是Java構建的,您都應該能夠使用strings.xml。您可以使用getString(R.string.string_name)
以Java語言訪問您的字符串。請參閱http://developer.android.com/guide/topics/resources/string-resource.html,然後只需按照本地化說明進行操作:http://developer.android.com/guide/topics/resources/localization.html即可。
雖然你不能在strings.xml中很容易地做到這一點,但我經常在xml中使用菜單資源。它的工作原理如下:
在res\
中創建一個名爲menu
的文件夾。
建立在XML文件最初是這樣
`<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<!-- menu contents in here... -->
</menu>`
現在,你可以添加你的菜單了上文所述的空間。 Groups
可以保存多個Items
,或者您可以在其中保存Items
。每個都有自己的id
,所以您可以快速輕鬆地參考它。這裏是一個全樣本..
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/cmd1" android:title="My 1st Command" android:enabled="true" android:visible="true" />
<item android:id="@+id/cmd2" android:title="My 2nd Command" android:enabled="true" android:visible="true" />
<item android:id="@+id/cmd3" android:title="My 3rd Command" android:enabled="true" android:visible="true" />
<item android:id="@+id/cmd4" android:title="My 4th Command" android:enabled="true" android:visible="true" />
</menu>
現在,你可以簡單地把它添加到您的代碼如下所示:
@Override public boolean onCreateOptionsMenu(final Menu newMenu)
{//Clear the Current Menu
newMenu.clear();
// Reinflate the Menu
final MenuInflater _inflate = getMenuInflater();
_inflate.inflate(R.menu.app_menu, newMenu);
// Set the ClickListener to This
final int _numItems = newMenu.size();
for (int _iItem = 0; _iItem < _numItems; _iItem++)
newMenu.getItem(_iItem).setOnMenuItemClickListener(this);
// Return as Handled (true)
return true;
}
最後,添加了onClicks:
@Override public boolean onMenuItemClick(final MenuItem onItem)
{//Determine which MenuItem was Clicked
switch (onItem.getItemId())
{ case R.id.cmd1:
//Action code
break;
case R.id.cmd2:
//Action code
break;
case R.id.cmd3:
//Action code
break;
case R.id.cmd4:
//Action code
break;
}
// Return as Handled (true)
return true;
}
希望這有助於!
FuzzicalLogic
我發現我可以使用'getString(R.string.anything)'來恢復java中的字符串。謝謝! – Raist 2012-01-14 15:06:49
我很高興它有幫助。如果您將此標記爲正確的答案,它也會對我有所幫助。 :) – 2012-01-16 17:14:37