0

我在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 个文本视图,如何求和?我现有的代码不起作用。

4

2 回答 2

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);
于 2013-05-13T09:09:31.080 回答
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;
            }
        }

    }
};
于 2013-05-13T09:06:31.270 回答