我声明了八个整数变量并按如下方式分配:
...
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;
}
我有两个旋转器。一个有以下选项:“一个”,“两个”,“三个”,“四个”。 另一个有这些选项:“红色”,“蓝色”。
用户从这两个微调器中选择选项后,我将“价格”和两个选项联系起来。例如。价格+ +一个蓝色。
我希望能够显示与连接字符串对应的适当价格(整数值)。我怎么做?
答案 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
使用Map
比switch
语句更好,因为它可以扩展;也就是说,如果您想重新计算代码并添加更多选项,那么您最终不会得到很长的switch
语句。除了在ArrayAdapter
和Spinner
的{{1}}之间轻松复制/更新数据外。