如何在android中复制复选框值?

时间:2013-05-13 09:00:54

标签: android checkbox

我在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,如何总结?我现有的代码不起作用。

2 个答案:

答案 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;
            }
        }

    }
};