Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过在名称中添加int从strings.xml获取字符串_Java_Android_Settext_R.java File - Fatal编程技术网

Java 如何通过在名称中添加int从strings.xml获取字符串

Java 如何通过在名称中添加int从strings.xml获取字符串,java,android,settext,r.java-file,Java,Android,Settext,R.java File,单击一个按钮时,将调用方法nextStep。每次点击一个按钮,我想显示不同的信息,第一次是info1字符串,下一次是info2字符串,等等。我想这样做: private int info = 1; public void nextStep(View view) { TextView textInfo = (TextView) findViewById(R.id.textInfo); textInfo.setText(R.string.info1); info++

单击一个按钮时,将调用方法nextStep。每次点击一个按钮,我想显示不同的信息,第一次是info1字符串,下一次是info2字符串,等等。我想这样做:

private int info = 1;

public void nextStep(View view)
{    
    TextView textInfo = (TextView) findViewById(R.id.textInfo);
    textInfo.setText(R.string.info1);
    info++;
}

当然,这是不可能的。我该怎么办?我真的不想写一个大的if/else或switch语句。谢谢。

使用字符串数组或更好的列表,如ArrayList,并用XML中的字符串填充它。然后可以使用getint index方法获取列表中的第i个字符串


如果您使用JAXB来解组XML,您可以设置它来为您创建列表,而无需太多麻烦。

使用字符串数组或更好的列表,如ArrayList,并用XML中的字符串填充它。然后可以使用getint index方法获取列表中的第i个字符串

如果您使用JAXB来解组XML,您可以设置它来为您创建列表,而无需太多麻烦

当然,这是不可能的

事实上,是的。可以使用getIdentifier执行以下操作:

private int info = 1;

public void nextStep(View view)
{    
    TextView textInfo = (TextView) findViewById(R.id.textInfo);
    textInfo.setText(R.string.info + info);
    info++;
}
是一种在不知道确切名称的情况下获取存储在R中的资源ID的方法。虽然它不是世界上最有效的方法,但在不可能引用R的情况下(如您的情况),它就足够了

该方法返回与R相同的ID;即,getIdentifierinfo1,id。。。;与R.id.info1相同,因为R只是它的编译版本。如果您不确定某个ID是否存在(例如来自外部库的ID),但仍需要引用它,则此方法也适用

当然,这是不可能的

事实上,是的。可以使用getIdentifier执行以下操作:

private int info = 1;

public void nextStep(View view)
{    
    TextView textInfo = (TextView) findViewById(R.id.textInfo);
    textInfo.setText(R.string.info + info);
    info++;
}
是一种在不知道确切名称的情况下获取存储在R中的资源ID的方法。虽然它不是世界上最有效的方法,但在不可能引用R的情况下(如您的情况),它就足够了


该方法返回与R相同的ID;即,getIdentifierinfo1,id。。。;与R.id.info1相同,因为R只是它的编译版本。如果您不确定某个ID是否存在(例如外部库中的ID),但仍然需要引用它,则此方法也可以使用。

因此,在onCreate方法上,我应该调用一个新方法,例如,fillList,并执行如下操作:infoArrayList.addR.string.info1;infoArrayList.addR.string.info2;ex.infoArrayListR.string.info3;等等。?我做到了,它很有效,但你确定这是最简单/最好的解决方案吗?因为每次我添加新信息时,我也需要将其添加到arraylist。谢谢。@hey:不,我不推荐这么笨重的东西,而是希望使用JAXB从XML文件自动为您创建列表。我不熟悉Android编程,但我相信JAXB是核心Java的一部分,可以供您使用;infoArrayList.addR.string.info2;ex.infoArrayListR.string.info3;等等。?我做到了,它很有效,但你确定这是最简单/最好的解决方案吗?因为每次我添加新信息时,我也需要将其添加到arraylist。谢谢。@hey:不,我不推荐这么笨重的东西,而是希望使用JAXB从XML文件自动为您创建列表。我不熟悉Android编程,但我相信JAXB是核心Java的一部分,可以供您使用。但也许你可以解释一下这个答案?在那里,我修改了我的帖子,添加了一点解释,以及一个指向文档的链接。希望这有点帮助!:这真是太棒了,哇。但也许你可以解释一下这个答案?在那里,我修改了我的帖子,添加了一点解释,以及一个指向文档的链接。希望这有点帮助!: