【问题标题】:Access string.xml Resource File from Java Android Code从 Java Android 代码访问 string.xml 资源文件
【发布时间】:2011-11-05 01:10:20
【问题描述】:

如何从 Android Activity class 访问 res/values/string.xml 资源文件中的值?

【问题讨论】:

    标签: java android string


    【解决方案1】:

    strings.xml:

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

    活动:

    getString(R.string.some_text);
    

    【讨论】:

    • @MByD 那是我第一次比你快=)
    • 水星金星地球跨度>
    【解决方案2】:

    你可以使用 String 来获取,

    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();  
    }
    

    【讨论】:

    • MercuryVenusEarth我使用 getString(R.string.planets); 时的代码
    • 我检查了您的答案,但出现 ForceClose 错误。感谢您的帮助
    • 这是 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:无法启动活动 ComponentInfo{com.string/com.string.string}:android.content.res.Resources$NotFoundException:字符串资源 ID #0x7f050000
    • 这是 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:无法启动活动 ComponentInfo{com.string/com.string.string}:android.content.res.Resources$NotFoundException:字符串资源 ID #0x7f050000 08-27 20:16:04.844:ERROR/AndroidRuntime(339) :在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    • 请注意 getString() 不是静态的。如果您想将 string.xml 值分配给应用程序类的静态属性,请在您的类 onCreate() 中执行。
    【解决方案3】:

    将此代码放入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>
    

    【讨论】:

      【解决方案4】:

      如果 getString(R.string.app_name);不适合你,你可以像这样传递上下文:

      context.getString(R.string.app_name);
      

      【讨论】:

        【解决方案5】:

        如果您有 Activity 的上下文,请使用:

        getString(R.string.app_name);
        

        如果您没有上下文,请尝试以下操作,您可以使用 Constructor 从活动中获取上下文。

        mContext.getString(R.string.app_name);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-13
          • 1970-01-01
          • 1970-01-01
          • 2011-05-04
          • 2011-07-08
          相关资源
          最近更新 更多