我正在创建一个 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>