我有以下问题
Bundle bundle = new Bundle();
bundle.putString("url", "someUrl");
这很好用。但
bundle.putString("title", R.string.titleForUrl);
Eclipse注意到R.string.titleForUrl
是一个int但应该是字符串。但是不是R.string.titleForUrl
一个字符串?
我该如何解决这个问题?
答案 0 :(得分:6)
R.string.titleForUrls是一个整数,它是字符串表中的资源标识符。
要获取字符串,需要调用context.getString(R.string.titleForUrls)从资源加载字符串。
因此,如果您希望存储字符串,那么您可以传递加载的字符串或int,然后在从另一端的bundle中获取int时加载。
答案 1 :(得分:4)
使用此
bundle.putString("title",getString(R.string.titleForUrl);
答案 2 :(得分:2)
R.string.titleForUrl
是资源ID。它是一个代表String资源的int。您可以使用yourActivity.getResources().getString(.string.titleForUrl)
从此资源ID获取字符串。
答案 3 :(得分:1)
那是因为它是一个int。 R.string.titleForUrl
是您从xml文档加载的字符串变量的ID号。你想要的是这样的:
bundle.putString("title", getResources().getString(R.string.titleForUrl);
答案 4 :(得分:1)
即使您的问题已经在前一段时间内完全得到了解答,但我想添加以下内容,因为您的问题在Google上排名很高:
由于以下原因,字符串资源(也称为here)不应实现捆绑密钥:
结论:使用最终静态字符串应该是使用捆绑密钥的优先方式