AlertDialog中的setPositiveButton,使用字符串?

时间:2013-04-25 17:41:11

标签: android android-alertdialog

我正在尝试将一个字符串添加到以下警告框的正面按钮,但它会不断发送错误消息。

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();

有任何帮助吗?它似乎适用于标题和消息,但不适用于按钮......

提前致谢。

编辑:错误说:

  

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

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

EDIT2:

好吧到底是怎么回事。问题在于字符串名称;由于某种原因,我不会让我的字符串继续命名。 O_O

3 个答案:

答案 0 :(得分:2)

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

此外,你不能使用“继续”作为名称,使用“str_continue”或类似的东西(“return”或“break”等相同。)。它们在java中保留。有关详细信息,请阅读链接:http://java.about.com/od/javasyntax/a/reservedwords.htm

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

尝试,首先转到res / values / strings.xml并按如下所示声明您的字符串

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

然后您可以按照以下说明进行操作

R.string.checkNetwork

就像这样一个人,要开心....