2012-01-14 85 views
0

有一种简单的方法来使用值strings.xml翻译菜单选项卡的文本? 由于菜单文本在java上设置,我没有看到一种方法来做到这一点。Android - 翻译菜单选项卡

如果没有,哪种方法更好?

解决:

方法来恢复的字符串:的getString(R.string.tela_principal_menu_tab_um);

回答

0

无论您的菜单是使用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即可。

+0

我发现我可以使用'getString(R.string.anything)'来恢复java中的字符串。谢谢! – Raist 2012-01-14 15:06:49

+0

我很高兴它有帮助。如果您将此标记为正确的答案,它也会对我有所帮助。 :) – 2012-01-16 17:14:37

1

虽然你不能在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