0

我正在尝试向以下警报框的肯定按钮添加一个字符串,但它不断发送错误消息。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.checkNetwork).setTitle(
        R.string.checkNetworkTitle);
builder.setIcon(R.drawable.ic_warning);
builder.setPositiveButton(android.R.string.continue, new warningContinue());
AlertDialog dialog = builder.create();
dialog.show();

有什么帮助吗?它似乎确实适用于标题和消息,但不适用于按钮......

提前致谢。

编辑:错误说:

AlertDialog.Builder 类型中的方法 setPositiveButton(int, DialogInterface.OnClickListener) 不适用于参数 (Class, warningContinue)

所以它似乎期望一个整数,但我想知道是否有任何方法可以将字符串用于本地化目的?

编辑2:

好吧,什么鬼。问题在于字符串名称;由于某种原因,它不会让我命名我的字符串继续。o_O

4

3 回答 3

2

您不想使用“android.R.string.continue”。“包名”.R.string.continue 是你想要的。这就是您在 android 中进行本地化的常用方式。id 根据用户的系统语言自动提供多语言支持。您只需要创建多个“值”目录。https://developer.android.com/guide/topics/resources/localization.html为您提供有关本地化的更多信息。

此外,您不能使用“继续”作为名称,使用“str_continue”或类似的名称(“返回”或“中断”等相同)。它们在java中保留。有关更多信息,您可以阅读链接:http: //java.about.com/od/javasyntax/a/reservedwords.htm

因为你没有发布“warningContinue()”的代码,我想你知道它必须扩展“DialogInterface.OnClickListener()”。此外,出于约定原因,您还应该考虑将类的第一个字符大写,有关更多信息,请阅读 stackoverflow 上的此答案:https ://stackoverflow.com/a/414029/2238341

于 2013-04-25T18:21:19.577 回答
1

R.string.warningButton只是您的 R.java 文件中的 int 。要获取关联的字符串,请使用以下行:

builder.setPositiveButton(getString(R.string.warningButton), new warningContinue() );

正如其他提到的,不要使用 android.R.string.continue 因为它在系统中不存在。

于 2013-04-25T17:57:36.150 回答
0

试试看,首先去 res/values/strings.xml 并声明你的字符串如下

<string name="checkNetwork">your String...</string>

然后你可以采取如下方式

R.string.checkNetwork

就像这个一样,快乐....

于 2020-07-08T19:13:50.987 回答