我做了一些搜索,这个论坛上的问题似乎都与我的不匹配。
我要完成的工作:
我的应用程序中有一个列表视图。当我选择和项目时,我希望应用程序能够读取该项目是什么并相应地执行我希望它执行的操作。
我正在制作的 App 是一款基于文本的 RPG 游戏。例如:您进入商店,在列表视图中看到一个“青铜头盔”,售价 100 金币。当您单击青铜头盔时,我希望它能够理解,“用户单击青铜头盔,让该用户减去 100 金币并给他头盔”
我试过的:
if (MeleeArmourList.getItemAtPosition(1).toString() == "(100G) Bronze Helmet") {
int gold Integer.parseInt(textViewShopGoldValue1.getText().toString()) - 100;
textViewShopGoldValue1.setText("" + gold);
}
现在这完美无缺。但是这里还有几行代码来演示正在发生的事情:
if (MeleeArmourList.getItemAtPosition(2).toString() == "(250G) Bronze Chestplate") {
int gold = Integer.parseInt(textViewShopGoldValue1.getText().toString()) - 250;
textViewShopGoldValue1.setText("" + gold);
}
if (MeleeArmourList.getItemAtPosition(3).toString() == "(125G) Bronze Leggings") {
int gold = Integer.parseInt(textViewShopGoldValue1.getText().toString()) - 125;
textViewShopGoldValue1.setText("" + gold);
}
if (MeleeArmourList.getItemAtPosition(4).toString() == "(100G) Bronze Boots") {
int gold = Integer.parseInt(textViewShopGoldValue1.getText().toString()) - 100;
textViewShopGoldValue1.setText("" + gold);
}
所以现在发生的事情是:当我点击“青铜头盔”时,它不仅会减去头盔上的 100 金币,还会减去胸甲、护腿等上的金币……
所以我的问题是:
如何让应用程序单独读取一行并将其与所选字符串进行比较?我还尝试了:“getSelectedItem()”,但这给了我一个 nullPointerException。
有任何想法吗?
编辑
MeleeArmourList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (MeleeArmourList.getSelectedItemPosition() == 1) {
int gold = Integer.parseInt(textViewShopGoldValue1
.getText().toString()) - 100;
textViewShopGoldValue1.setText("" + gold);
}
}
});