2011-12-05 54 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文件


結論:使用最終靜態字符串應該是您使用捆綁鍵的優先方式