Android - 翻译菜单选项卡

发布于 12-26 23:19 字数 197 浏览 1 评论 0原文

有一种简单的方法可以使用值 strings.xml 翻译菜单选项卡的文本吗? 由于菜单文本是在 java 上设置的,我看不到有办法做到这一点。

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

已解决:

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

There is a simple way to translate menu tab's text using values strings.xml?
Since the menu text is set on java, i don't see a way to do that.

If there isn't, which is the better way to do that?

SOLVED:

Method to recover a string: getString(R.string.tela_principal_menu_tab_um);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏末2025-01-02 23:19:56

虽然您无法在 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;
}

希望这有帮助!

模糊逻辑

While you cannot do it in strings.xml as easily, I frequently use a menu resource in xml. It works like so:

Create a folder in res\ named menu.

Set up the XML file initially like this

`<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- menu contents in here... -->
</menu>`

Now you can add your menu into the space indicated above. Groups can hold multiple Items, or you can just hold Items in there. Each has its own id so you can reference it quickly and easily. Here is a full sample..

<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>

Now you can simply add it to your code like so:

@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;
}

Finally, you add the 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;
}

Hope this helps!

FuzzicalLogic

等往事风中吹2025-01-02 23:19:56

无论您的菜单是用 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 用于您的字符串。

Whether your menu is built in XML or Java, you should be able to use strings.xml. You can access your strings in Java using getString(R.string.string_name). See http://developer.android.com/guide/topics/resources/string-resource.html, and then just follow the instructions for localization: http://developer.android.com/guide/topics/resources/localization.html for your strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文