您好,我一直在努力弄清楚如何使用小计的数量增量和减量按钮来获取小计。
我想要的是顾客选择类型后价格会显示在底部。 然后,如果他们想要多个订单,他们可以按+按钮,价格也会根据订单的增加或减少而变化。这是代码
主要活动
public class expresso_item1 extends AppCompatActivity {
private Spinner spinner;
RadioGroup radioGroup;
RadioButton radioButton;
TextView textView;
TextView value;
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_expresso_item1);
value = (TextView) findViewById(R.id.quantity1);
radioGroup = findViewById(R.id.radioGroup);
textView = findViewById(R.id.total1);
}
public void RButton (View v){
int radioID = radioGroup.getCheckedRadioButtonId();
switch(radioID){
case R.id.type1:
textView.setText("$"+"5");
break;
case R.id.type2:
textView.setText("$"+"10");
break;
case R.id.type3:
textView.setText("$"+"12");
break;
}
}
public void plus (View v){
count++;
value.setText("" + count);
}
public void minus (View v){
if (count <= 0 ) count = 0;
else count--;
value.setText("" + count);
}
}
目前仅显示客户想要的型号价格。如有任何帮助,我们将不胜感激!
试试这个吧
初始化另一个全局变量以使当前价格低于计数
int count = 0
int currentPrice = 0
然后在 RButton() 中设置 currentPrice 的新值
public void RButton (View v){
int radioID = radioGroup.getCheckedRadioButtonId();
switch(radioID){
case R.id.type1:
textView.setText("$"+"5");
currentPrice = 5
break;
case R.id.type2:
textView.setText("$"+"10");
currentPrice = 10
break;
case R.id.type3:
textView.setText("$"+"12");
currentPrice = 15
break;
}
}
然后在plus和minus函数中
public void plus (View v){
count++;
value.setText("" + String.valueOf(count * currentPrice));
}
public void minus (View v){
if (count <= 0 ) count = 0;
else count--;
value.setText("" + String.valueOf(count * currentPrice));
}
}
这就是我会做的, 创建一个全局变量数量(而不是计数)并用值 0 进行初始化。
我将其设置为数量文本视图,每当用户按下+图像按钮时它就会增加,并且类似地在-上减少。
我还会将另一个可变速率初始化为 0。
//global variable
private val quantity = 0
.
.
.
quantityTexview.text =
quantity.toString()
val rate = 0
//it's value will change depending on
//selected radio button ($5, $10,$12)
subtotal.text = quantity * rate
//set this to subtotal textview
subtotalTextview.text =
subtotal.toString()