2011-12-05 5 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からStringを取得できます。

詳細については、hereおよびhereおよびこちらを参照してください。

1

これはint型であるためです。 R.string.titleForUrlは、XML文書からロードした文字列変数のID番号です。何が欲しいのはこのようなものです:

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

4

使用この

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

あなたの質問はすでにいくつかの時間前に完全に回答されているにもかかわらず、私はあなたの質問以来、以下を追加したいです

hereと明記されているように、バンドルキーは、次の理由で実現できません。

    彼らは視覚的にそこにそれらを変換する必要がないので、あなたのxmlで 翻訳可能属性は常にリントエラーを回避するために に設定する必要があります
  1. ため、1のユーザに提示されることはありません
  2. 彼らは、プログラムだけではなく、レイアウトやに含まれてアクセスされている他の.xmlファイル


結論:使用最終的な静的な文字列は、あなたの好みのバンドルキーを使うべきです