String [] product = new String [] {
"Item A - 15$",
"Item B - 12$",
"item C - 30$",
"Item D - 40$",
};
ArrayAdapter<String> adapter = new
ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,product);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
final Spinner spin = (Spinner)findViewById(R.id.spinner1);
spin.setAdapter(adapter);
spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l){
if(spin.getSelectedItem().equals(0))
{
Double addprice = 15.0;
Totalprice.setText(Double.toString(currentprice)+
Double.toString(addprice));
}
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
我想做的是当用户从微调器中选择项目A时,Totalprice编辑文本框将在其上添加价格。例如,当前价格为0.0,用户选择物料A,它将显示为10.0。这也适用于其他商品,这意味着只要用户选择任何商品,价格就会自动添加到Totalprice。
我成功添加了微调器,但是当我在微调器上选择任何项目而无法使用时,任何人都可以提供解决方案或其他更好的方法来做到这一点?
答案 0 :(得分:0)
我不知道为什么onItemSelected()
中有if语句。
您需要做的就是从微调器中获取数字值,在解析文本后,
获得EditText
的数字值,将2个值相加,然后将总数设置回{{1} }。
EditText
编辑:
在此行之后:
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l){
String s = adapterView
.getItemAtPosition(pos).toString()
.split("-")[1].trim()
.replace("$", "");
double addprice = Double.parseDouble(s);
double currentprice = 0.0;
try {
currentprice = Double.parseDouble(Totalprice.getText().toString());
} catch (NumberFormatException e) {
e.printStackTrace();
}
double total = currentprice + addprice;
Totalprice.setText(String.valueOf(total));
}
将spin.setAdapter(adapter);
的文本设置为EditText
:
0.0