我想显示一个变量值,其中变量名称与连接字符串

时间:2018-06-18 09:56:01

标签: java android android-studio

我声明了八个整数变量并按如下方式分配:

...
int priceOneRed, priceTwoRed, priceThreeRed, priceFourRed, priceOneBlue, priceTwoBlue, priceThreeBlue, priceFourBlue;
protected void onCreate(Bundle savedInstanceState) { 
...
priceOneRed=100;
priceTwoRed=200;
priceThreeRed=300;
priceFourRed=400;
priceOneBlue=1000;
priceTwoBlue=2000;
priceThreeBlue=3000;
priceFourBlue=4000;

}

我有两个旋转器。一个有以下选项:“一个”,“两个”,“三个”,“四个”。 另一个有这些选项:“红色”,“蓝色”。

用户从这两个微调器中选择选项后,我将“价格”和两个选项联系起来。例如。价格+ +一个蓝色。

我希望能够显示与连接字符串对应的适当价格(整数值)。我怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用简单的Map来执行此操作:

Map<String, Integer> map = new HashMap<>();
map.put("priceOneRed", 100);
...    

Integer price = map.get(concatedString);

答案 1 :(得分:1)

这样做的方法是创建一个带有键值对的简单Map,如下所示:

Map <String, Integer> items = new HashMap<>();
items.put("Red", 100);
items.put("Blue",1000);
.......
// rest of the items

然后另一个Map计数:

Map <String, Integer> count = new HashMap<>();
count.put("One", 1);
count.put("Two",2);
count.put("Three",3);
count.put("Four",4);

然后根据用户在微调器中的选择,您可以执行以下操作:

String countChoice = parent.getItemAtPosition(pos).toString(); // from first spinner
String itemChoice = parent.getItemAtPosition(pos).toString() // from second spinner
count.get(countChoice) + " " + itemChoice +  " " + items.get(itemChoice); // change to the appropriate textual format you want

使用Mapswitch语句更好,因为它可以扩展;也就是说,如果您想重新计算代码并添加更多选项,那么您最终不会得到很长的switch语句。除了在ArrayAdapterSpinner的{​​{1}}之间轻松复制/更新数据外。