将动态字符串资源传递给" Toast"

时间:2015-06-18 23:35:22

标签: android

我正在尝试将动态字符串传递给" Toast"

我做了一个自定义功能:

  private void makeToast(String message) {
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }

然后我可以使用此函数传递Toast消息,如:

 makeToast("You must enter the PIN code for authentication.");

我现在想要实现的是将动态字符串传递给它。 所以我在strings.xml中声明它:

<string name="must_pin">You must enter the PIN code for authentication</string>

并试图像这样传递:

makeToast(R.string.must_pin);

但是它不接受它并说它不能接受&#34; int&#34; ....那么我怎么能把这个传递给makeToast。什么是正确的格式?

3 个答案:

答案 0 :(得分:0)

您目前拥有它的方式,您只传递参考ID。您需要使用getString()

makeToast(getString(R.string.must_pin));

答案 1 :(得分:0)

 R.string.must_pin

是一个int,你的方法需要一个String。

您需要使用getResources()。getString(...)

makeToast(getResources().getString(R.string.must_pin));

答案 2 :(得分:0)

R.string.must_pin是一个int变量。您应该使用getResources().getString()来访问String文件中定义的strings.xml

makeToast(getResources().getString(R.string.must_pin));