java - 无法调用资源(特别是字符串数组) - java/android

标签 java android arrays

我创建了一个字符串数组,但无法在我的 java.lang.String 中访问它。我对 java 很陌生,所以任何帮助将不胜感激!

这是 Android 应用程序的一部分,它将使用字符串数组作为一系列图片下方的标题。

这就是我所拥有的。如果我注释掉这两行它仍然会运行:

Resources res=getResources();
String[] captionArray=res.getStringArray(R.array.chapter0captions);

这是一个类的一部分,用于存储我希望使用我的菜单 Activity 打开的图像和标题(不确定我是否解释得很好......)我不知道出了什么问题这两行,但我真的想调用我的数组,而不必在 switch-case 代码的每个部分下复制粘贴。预先感谢您的帮助!

import android.app.Application;
import android.content.res.Resources;

public class PositionStorage extends Application {
    public static int imageToOpen;
    public static String captionToOpen;
    public static String imageToOpenString;
    Resources res=getResources();
    String[] captionArray=res.getStringArray(R.array.chapter0captions);
public void storeTheString(int pos){
        int imageNumber=pos+1;
     switch (imageNumber) {
        case 1:
            imageToOpen=0x7f020005;
             captionToOpen=captionArray[pos];
            break;
        case 2:
            imageToOpen=0x7f020010; 
            captionToOpen=captionArray[pos];
            break;
        case 3:
            imageToOpen=0x7f02001b;
            captionToOpen=captionArray[pos];
            break;

最佳答案

不要在 string.xml 文件中声明字符串数组。而是在 value 文件夹下的 arrays.xml 中声明字符串数组。

结构是

res>>values>>arrays.xml

在 arrays.xnl 中

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="xxxarray">
    <item>one</item>
    <item>two</item>
    <item>thre</item>
</string-array>

在您的 Activity 中

String[] arrayvalues=getResources().getStringArray(R.array.xxxarray);

如果您在 string.xml 中声明数组,则系统会将其视为字符串。

关于java - 无法调用资源(特别是字符串数组) - java/android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291046/

相关文章:

java - 如何缓存任意时间差异的数据差异(java web 服务)

android - RxJava2 : Alternative to Observable<Void>

android - ViewPager、PagerAdapter 和 Bitmap 导致内存泄漏(OutOfMemoryError)

缓存内存优化数组转置 : C

Java - 一周内的 boolean 值

java - 类中的静态泛型方法 - Java

java - 选项卡是哪种对象?

java - 无法在 java 中访问 getJSONArray

arrays - 如何从数组中获取随机元素而不多次获取相同元素?

php - 调用成员函数execute()