1

我正在创建一个 8 球应用程序,我正在使用反射将字符串从 strings.xml 文件中抓取到一个 ArrayList 中,但它所做的只是在其中找到默认字符串(甚至是 hello_world——我已删除)另外,我不知道如何从它所在的 Field 类中获取字符串值。

第一个 System.out.println() [字段数量] 为 4。它们都是默认 strings.xml 文件的默认值,它没有更新或查看添加/删除的资源。

它还提出了那个奇怪的跟踪文件错误

在调试器中,ansStuff 的大小为 23... [它假设的数量 [不是 4..]] 太奇怪了

    Field[] ansStuff = R.string.class.getFields();
    System.out.println(R.string.class.getFields().length);
    for(Field x :ansStuff){
        System.out.println(x);
        System.out.println(x.getName());
        System.out.println(x.toString());
        if(x.getName().startsWith("ans")){
            choices.add(/*the goddamned string*/"poop");
        }
    }

在取出调试混乱之后,它就转化为这个

    for(Field x :R.string.class.getFields())
        if(x.getName().startsWith("ans"))
            choices.add(/*what do I add here to get the string value from the field in to the arraylist */);

这是资源文件

<resources>
<string name="app_name">8ballRotate</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="ans0">It is certain</string>
<string name="ans1">It is decidedly so</string>
<string name="ans2">Without a doubt</string>
<string name="ans3">Yes – definitely</string>
<string name="ans4">You may rely on it</string>
<string name="ans5">As I see it, yes</string>
<string name="ans6">Most likely</string>
<string name="ans7">Outlook good</string>
<string name="ans8">Yes</string>
<string name="ans9">Signs point to yes</string>
<string name="ans10">Reply hazy, try again</string>
<string name="ans11">Ask again later</string>
<string name="ans12">Better not tell you now</string>
<string name="ans13">Cannot predict now</string>
<string name="ans14">Concentrate and ask again</string>
<string name="ans15">Don\'t count on it</string>
<string name="ans16">My reply is no</string>
<string name="ans17">My sources say no</string>
<string name="ans18">Outlook not so good</string>
<string name="ans19">Very doubtful</string>
</resources>
4

0 回答 0