2011-12-05 28 views
1

我有以下问题把字符串资源成束在安卓

Bundle bundle = new Bundle(); 
bundle.putString("url", "someUrl"); 

这工作得很好。但是

bundle.putString("title", R.string.titleForUrl); 

Eclipse注意到R.string.titleForUrl是一个int,但应该是字符串。但是不是R.string.titleForUrl一个字符串?

我该如何解决这个问题?

回答

6

R.string.titleForUrls是一个整数,它是字符串表中的资源标识符。

要获取字符串,您需要调用context.getString(R.string.titleForUrls)从资源加载字符串。

因此,如果你想存储字符串,那么你可以通过加载的字符串或int,然后加载,当你从另一边的捆绑int。

2

R.string.titleForUrl是资源ID。它是一个代表String资源的int。您可以使用yourActivity.getResources().getString(.string.titleForUrl)从此资源ID获取字符串。

欲了解更多信息,请参阅herehere和这里。

1

这是因为它是一个整数。 R.string.titleForUrl是您从xml文档加载的字符串变量的ID号。你需要的是这样的:

bundle.putString("title", getResources().getString(R.string.titleForUrl);

4

使用本

bundle.putString("title",getString(R.string.titleForUrl); 
0

即使你的问题已经完全前段时间回答,我想补充,因为你的问题如下在谷歌上排名相当高:

捆绑键不应该由字符串资源(也注意到here)出于以下原因:

  1. 他们从来没有在视觉上呈现给用户
  2. 由于1,没有必要将其转化,所以在你的XML的翻译属性应始终设置为避免皮棉错误
  3. 他们正在访问的程序,而不是包含在布局或其他.xml文件


结论:使用最终静态字符串应该是您使用捆绑键的优先方式