Java Androidコードからstring.xmlリソースファイルにアクセスする


108

res/values/string.xmlAndroidからリソースファイルの値にどのようにアクセスしますActivity classか?

回答:


149

さてあなたは使用して文字列を得ることができ、

getString(R.string.app_name);

そして、あなたは使用して文字列配列を得ることができます

String arr[] = getResources().getStringArray(R.array.planet);
for (int i = 0; i < arr.length; i++) {
        Toast.makeText(getBaseContext(),arr[i], Toast.LENGTH_LONG).show();  
}

<string-array name = "planet"> <item> Mercury </ item> <item> Venus </ item> <item> Earth </ item> </ string-array>は、getString(R。 string.planets);
ラビキラン2011

回答を確認しましたが、ForceCloseエラーが発生しました。助けてくれてありがとう
ラビキラン

THIS IS LOGCAT 08-27 20:16:04.844:ERROR / AndroidRuntime(339):FATAL EXCEPTION:main 08-27 20:16:04.844:ERROR / AndroidRuntime(339):java.lang.RuntimeException:Unable to start activity ComponentInfo文字列リソースのID番号0x7f050000:android.content.res.Resources $ NotFoundException:{com.string / com.string.string}
Ravikiran

THIS IS LOGCAT 08-27 20:16:04.844:ERROR / AndroidRuntime(339):FATAL EXCEPTION:main 08-27 20:16:04.844:ERROR / AndroidRuntime(339):java.lang.RuntimeException:Unable to start activity ComponentInfo {com.string / com.string.string}:android.content.res.Resources $ NotFoundException:String resource ID#0x7f050000 08-27 20:16:04.844:ERROR / AndroidRuntime(339):at android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:2663)
Ravikiran

1
getString()は静的ではないことに注意してください。string.xml値をアプリクラスの静的プロパティに割り当てる場合は、クラスonCreate()で行います。
KrisWebDev 2014年

44

strings.xml:

<string name="some_text">Some Text</string>

アクティビティ:

getString(R.string.some_text);

@MByDそれは私があなたよりも速かった最初のティムです=)
マイケル

<string-array name = "planet"> <item>水星</ item> <item>金星</ item> <item>地球</ item> </ string-array>
ラビキラン

16

このコードを入れて res/values/string.xml

<string-array name="planet"> 
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
</string-array>

このコードを配置しres/layout/main.xml、に存在するデフォルトのウィジェットを削除しますmain.xml

<ListView android:id="@+id/planet"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:entries="@array/planet"/>
</LinearLayout>

15

getString(R.string.app_name);の場合 あなたのために働いていません、あなたはこのようなコンテキストを渡すことができます:

context.getString(R.string.app_name);

2

アクティビティのコンテキストがある場合は、次のようにします。

getString(R.string.app_name);

コンテキストがない場合は、以下をお試しくださいConstructor。アクティビティを使用してからコンテキストを取得できます。

mContext.getString(R.string.app_name);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.