可能重复作为底部链接。对于我想问的具体问题或获得更快的答案,请参阅我的问题中的答案。否则,请转到以下链接。
=============================================== ============================ 我的问题:
我问这个问题,即使有可能重复,但那些对我没有用。
我正在尝试访问
在AlertDialog中的strings.xml
但我似乎无法成功。我说过
.setTitle(@串/ 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>
谢谢!
答案 0 :(得分:3)
以编程方式使用String资源时,应使用
setTitle(getString(R.string.AlertTitle));
而不是
.setTitle(@string/AlertTitle);
同样对于这种特殊情况,有两种设置标题的方法。通过资源ID(可以是R.string.AlertTitle
)或设置字符串来获取getString()
.setTitle(R.string.AlertTitle);
有关详细信息,请参阅Android: How do I get string from resources using its name?。从getString
或getResources().getString(...)
Activity
代替Fragment
{'Andrew':['Photography'],'Peter':['Travel']}
答案 1 :(得分:1)
在Java代码中引用字符串资源时,正确的方法是:R.string.string_name
。
所以你的代码应该像这样工作:
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle(R.string.AlertTitle) //AlertTitle
//...