[英]Integer not incrementing as expected
在我询问 SIZE 和数量的总量之前,我还更新了我的代码变量。 但是很抱歉现在遇到了新材料和新问题.....
int pearl1 = 10, Cocount1 = 10, Perilla1 = 10,
pudding1 = 10, redbeans1 = 10, aloe1 = 10, jelly1 = 10, jade1 = 10;
less.setOnClickListener( totalprice );
plus.setOnClickListener( totalprice );
Perilla.setOnClickListener( totalprice );
jelly.setOnClickListener( totalprice );
pearl.setOnClickListener( totalprice );
aloe.setOnClickListener( totalprice );
Coconut.setOnClickListener( totalprice );
pudding.setOnClickListener( totalprice );
redbeans.setOnClickListener( totalprice );
jade.setOnClickListener( totalprice );
}
public OnClickListener totalprice = new
OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.less: {
if (count > 0) {
count--;
textView.setText( "" + count );
if (medium.isChecked()) {
total_price.setText( Integer.toString( Integer.parseInt( "45" ) * count ) );
counter = Integer.parseInt( total_price.getText().toString() );
buttled.setChecked( false );
} else if (buttled.isChecked()) {
total_price.setText( Integer.toString( Integer.parseInt( "45" ) * count * 0 ) );
count = Integer.parseInt( total_price.getText().toString() );
Toast toast = Toast.makeText( Main20Activity.this, " 無瓶裝! 請重新選擇!", LENGTH_SHORT );
toast.show();
} else {
total_price.setText( Integer.toString( Integer.parseInt( "80" ) * count ) );
counter = Integer.parseInt( total_price.getText().toString() );
buttled.setChecked( false );
}
}
break;
}
case R.id.plus: {
if (count < max) {
count++;
textView.setText( "" + count );
if (large.isChecked()) {
total_price.setText( Integer.toString( Integer.parseInt( "80" ) * count ) );
counter = Integer.parseInt( total_price.getText().toString() );
buttled.setChecked( false );
} else if (buttled.isChecked()) {
total_price.setText( Integer.toString( Integer.parseInt( "45" ) * count * 0 ) );
count = Integer.parseInt( total_price.getText().toString() );
Toast toast = Toast.makeText( Main20Activity.this, " 無瓶裝! 請重新選擇!", LENGTH_SHORT );
toast.show();
} else {
total_price.setText( Integer.toString( Integer.parseInt( "45" ) * count ) );
counter = Integer.parseInt( total_price.getText().toString() );
buttled.setChecked( false );
}
}
break;
}
}
switch (v.getId()) {
case R.id.Perilla: {
counter = counter + Perilla1;
total_price.setText( counter );
}
case R.id.jelly: {
counter = counter + jelly1;
total_price.setText( counter );
}
case R.id.redbeans: {
counter = counter + redbeans1;
total_price.setText( counter );
}
case R.id.jade: {
counter = counter + jade1;
total_price.setText( counter );
}
case R.id.pearl: {
counter = counter + pearl1;
total_price.setText( counter );
}
case R.id.Coconut: {
counter = counter + Cocount1;
total_price.setText( counter );
}
case R.id.pudding: {
counter = counter + pudding1;
total_price.setText( counter );
}
case R.id.aloe: {
counter = counter + aloe1;
total_price.setText( counter );
}
}
}
};
我的理解是:我用“counter”替换了 total_price。 选择紫苏的食材后,total_price 在输出中应该增加10,不是吗?
我使用案例并声明相同的 setOnClickListener 但是在我执行它后意外退出
您仅使用整数 10 实例化一个变量:
int pearl1, Cocount1, Perilla1,
pudding1, redbeans1, aloe1,
jelly1, jade1 = 10;
改成:
int pearl1 = 10, Cocount1 = 10, perilla1 = 10, pudding1 = 10, redbeans1 = 10, aloe1 = 10, jelly1 = 10, jade1 = 10;
您的实施存在一些问题。 第一个是您将OnClickListener
放在另一个OnClickListener
。 第二个是你的break
语句不正确。 请在下面查看我的实现:
int pearl1 = 10, Cocount1 = 10, perilla1 = 10, pudding1 = 10, redbeans1 = 10, aloe1 = 10, jelly1 = 10, jade1 = 10;
int max = 99;
private Button.OnClickListener money = new
OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.medium: {
total_price.setText("45");
counter = Integer.parseInt( total_price.getText().toString() );
break;
}
case R.id.large: {
total_price.setText("80");
counter = Integer.parseInt( total_price.getText().toString() );
break;
}
case R.id.bottled: {
total_price.setText( "" );
break;
}
}
less = (ImageButton) findViewById( R.id.less );
plus = (ImageButton) findViewById( R.id.plus );
less.setOnClickListener( AddandLess );
plus.setOnClickListener( AddandLess );
}
});
private Button.OnClickListener AddandLess = new
OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.less: {
if (count > 0) {
count--;
textView.setText( "" + count );
}
break;
}
case R.id.plus: {
if (count < max) {
count++;
textView.setText( "" + count );
}
break;
}
}
}
});
Perilla.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c){
if (c) {
counter=counter+Perilla1;
total_price.setText(counter);
}
}
});
jelly.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c)
if (c) {
counter=counter+jelly1;
total_price.setText(counter);
}
});
aloe.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+aloe1;
total_price.setText(counter);
}
}
});
redbeans.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+redbeans1;
total_price.setText(counter);
}
}
});
pearl.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+pearl1;
total_price.setText(counter);
}
}
});
Coconut.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+Cocount1;
total_price.setText(counter);
}
}
});
jade.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+jade1;
total_price.setText(counter);
}
}
});
pudding.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean c) {
if (c) {
counter=counter+pudding1;
total_price.setText(counter);
}
}
});
int TotalPrice = counter * count;
String strTotalPrice = String.valueOf( TotalPrice );
total_price.setText( strTotalPrice );
编辑:
评论中提到的错误是因为textView
在被调用时没有初始化。 在onCreate
添加以下内容:
textView = findViewById(R.id.nameOfTextView);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.