我在java中遇到了问题。
package apa.y;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
public class myprice extends Activity {
/** Called when the activity is first created. */
CheckBox book,pencil;
TextView total;
int sum=0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mymain);
pencil = (CheckBox) findViewById(R.id.pencil);
book = (CheckBox) findViewById(R.id.book);
total = (TextView) findViewById(R.id.total);
}
public void onClick(View v) {
sum = 0;
if (pencil.isChecked()) {sum += 10;}else{sum +=0;}
if (book.isChecked()) {sum += 5;}else{sum +=0;}
total.setText("Total: "+sum);
}
}
如果书和铅笔是复选框和1 textview,如何总结?我现有的代码不起作用。
答案 0 :(得分:1)
你点击什么?复选框?那么你需要某种监听器来获得这些视图。这里提供了两个选项:Android: checkbox listener
如果您想现在使用onClick方法,请更改:
public class myprice extends Activity implements OnClickListener {
并确保为两个复选框设置OnClickListener:
pencil = (CheckBox) findViewById(R.id.pencil);
pencil.setOnClickListener(this);
book = (CheckBox) findViewById(R.id.book);
book.setOnClickListener(this);
答案 1 :(得分:0)
创建OnCheckedChangeListener
并将其设置为您的所有CheckBox
。然后在复选框上检查整数变量中的+1,并从未整数变量中取消选中-1。现在,您在Integer变量中有复选框的最新总和值。
您可以这样做:
int mCheckSum = 0;
private OnCheckedChangeListener dmCheckChangeListener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mCheckSum += 1;
} else if (isChecked == false) {
if (mCheckSum > 0) {
mCheckSum -= 1;
}
}
}
};