如何在AlertDialog中

时间:2016-11-25 15:49:21

标签: java android

可能重复作为底部链接。对于我想问的具体问题或获得更快的答案,请参阅我的问题中的答案。否则,请转到以下链接。

  

Android: How do I get string from resources using its name?

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

我问这个问题,即使有可能重复,但那些对我没有用。

我正在尝试访问

  

的strings.xml

在AlertDialog中

但我似乎无法成功。我说过

  

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

谢谢!

2 个答案:

答案 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?。从getStringgetResources().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
                    //...