Java 如何在android中访问AlertDialog中文本的字符串资源

Java 如何在android中访问AlertDialog中文本的字符串资源,java,android,Java,Android,它可以复制为底部链接。关于我想问的具体问题或想得到更快的答案,请参见我问题中的答案。否则,请转到以下链接 =========================================================================== 我的问题: 我问这个问题,虽然可能有重复的,但这些都不适合我 我正在尝试访问 strings.xml <string name="AlertTitle">Add a New Task</string> <str

它可以复制为底部链接。关于我想问的具体问题或想得到更快的答案,请参见我问题中的答案。否则,请转到以下链接

=========================================================================== 我的问题:

我问这个问题,虽然可能有重复的,但这些都不适合我

我正在尝试访问

strings.xml

<string name="AlertTitle">Add a New Task</string>
<string name="AlertMessage">What do you want to do next?</string>
<string name="Add">Add</string>
<string name="Cancel">Cancel</string>   
但我似乎做不到。我说过

.setTitle(@string/AlertTitle)

在下面的代码中,但它不起作用,并给出了一个错误。 是否有任何可能的方法从AlertDialog获取字符串,还是不可能

代码如下

这是AlertMainActivity.java

AlertDialog dialog = new AlertDialog.Builder(this)
                        .setTitle("Add a New Task") //AlertTitle
                        .setMessage("What do you want to do next?") //AlertMessage
                        .setView(taskEditText) 
                        .setPositiveButton("Add", new DialogInterface.OnClickListener() //Add {
                           ...
                        .setNegativeButton("Cancel", null) //Cancel  
                           ...
                        }
和strings.xml

<string name="AlertTitle">Add a New Task</string>
<string name="AlertMessage">What do you want to do next?</string>
<string name="Add">Add</string>
<string name="Cancel">Cancel</string>   
添加新任务
你下一步想做什么?
添加
取消

谢谢

以编程方式使用字符串资源时,应使用

setTitle(getString(R.string.AlertTitle));
而不是

.setTitle(@string/AlertTitle);
对于这种特殊情况,还有两种设置标题的方法。通过资源id(即
R.string.AlertTitle
)或通过设置字符串(可从
getString()


有关更多信息,请参阅。当从
活动中使用它时,您可以执行
getString
而不是
getResources().getString(…)
,当您在Java代码中引用字符串资源时,正确的方法是:
R.string.string\u name

因此,您的代码应该如下所示:

AlertDialog dialog = new AlertDialog.Builder(this)
                    .setTitle(R.string.AlertTitle) //AlertTitle
                    //...

谢谢你的帮助。我真的很感激。