Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android问答应用程序在更新分数时崩溃_Java_Android - Fatal编程技术网

Java Android问答应用程序在更新分数时崩溃

Java Android问答应用程序在更新分数时崩溃,java,android,Java,Android,提交按钮id为ShowScore 正确答案是正确的1,正确的2…正确的53 单击按钮时,应用程序崩溃。。。 android工作室不会显示任何错误 正确答案得1分 错误的答案是-1 请帮帮我 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.CheckBox; import android.widget.RadioButton; import androi

提交按钮id为ShowScore 正确答案是正确的1,正确的2…正确的53 单击按钮时,应用程序崩溃。。。 android工作室不会显示任何错误 正确答案得1分 错误的答案是-1 请帮帮我

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    int score = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void setScore() {
        RadioButton check1 = (RadioButton) findViewById(R.id.right1);
        boolean doit1 = check1.isChecked();
        RadioButton check2 = (RadioButton) findViewById(R.id.right2);
        boolean doit2 = check2.isChecked();
        RadioButton check3 = (RadioButton) findViewById(R.id.right3);
        boolean doit3 = check3.isChecked();
        RadioButton check4 = (RadioButton) findViewById(R.id.right4);
        boolean doit4 = check4.isChecked();
        CheckBox check5 = (CheckBox) findViewById(R.id.right51);
        boolean doit5 = check5.isChecked();
        CheckBox check52 = (CheckBox) findViewById(R.id.right52);
        boolean doit52 = check52.isChecked();
        CheckBox check53 = (CheckBox) findViewById(R.id.right53);
        boolean doit53 = check53.isChecked();
        updateScore(doit1);
        updateScore2(doit2);
        updateScore3(doit3);
        updateScore4(doit4);
        updateScore5(doit5, doit52, doit53);
        showScore();


    }

    private int updateScore(boolean doit1) {
        if (doit1) {
            score = score + 1;
        } else {
            score = score - 1;

        }
        return score;

    }

    private int updateScore2(boolean doit2) {
        if (doit2) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore3(boolean doit3) {
        if (doit3) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore4(boolean doit4) {
        if (doit4) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore5(boolean doit5, boolean doit52, boolean doit53) {
        if (doit5 && doit52 && doit53) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;

    }

    private void showScore() {
        TextView olds = (TextView) findViewById(R.id.ShowScore);
        olds.setText(score);
    }
}
。我猜您已经使用属性android:onClick=setScore在XML中定义了提交按钮的setScore方法。但是您的方法没有任何视图参数。按以下方式更新您的方法:

    public void setScore(View v) {
        ..........
        .............
    }
。由于分数是一个int值,请使用olds.setTextString.valueOfscore在TextView上设置分数

以下是完整的代码:

将setText.score更改为score+

说明:setText方法只接受字符串作为参数,但您可以传入int,但它会给出一个错误,我认为android平台中的输出流必须始终是字符串类型

您甚至可以使用String.valueOfscore;因为这是正确的方法,在第一个参数中添加引号就像是一个极客骗局。如果您在xml中设置了onClick方法,那么setScore必须采用参数setScore View View{//text View goes here..}

希望它能起作用。干杯

从其中调用setScore方法。发布布局xml。。
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


    TextView olds;
    RadioButton check1, check2, check3, check4;
    CheckBox check5, check52, check53;

    int score = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        olds = (TextView) findViewById(R.id.ShowScore);
        check1 = (RadioButton) findViewById(R.id.right1);
        check2 = (RadioButton) findViewById(R.id.right2);
        check3 = (RadioButton) findViewById(R.id.right3);
        check4 = (RadioButton) findViewById(R.id.right4);
        check5 = (CheckBox) findViewById(R.id.right51);
        check52 = (CheckBox) findViewById(R.id.right52);
        check53 = (CheckBox) findViewById(R.id.right53);
    }

    public void setScore(View v) {

        boolean doit1 = check1.isChecked();
        boolean doit2 = check2.isChecked();
        boolean doit3 = check3.isChecked();
        boolean doit4 = check4.isChecked();
        boolean doit5 = check5.isChecked();
        boolean doit52 = check52.isChecked();
        boolean doit53 = check53.isChecked();

        updateScore(doit1);
        updateScore2(doit2);
        updateScore3(doit3);
        updateScore4(doit4);
        updateScore5(doit5, doit52, doit53);
        showScore();
    }

    private int updateScore(boolean doit1) {
        if (doit1) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore2(boolean doit2) {
        if (doit2) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore3(boolean doit3) {
        if (doit3) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore4(boolean doit4) {
        if (doit4) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score;
    }

    private int updateScore5(boolean doit5, boolean doit52, boolean doit53) {
        if (doit5 && doit52 && doit53) {
            score = score + 1;
        } else {
            score = score - 1;
        }
        return score; 
    }

    private void showScore() {
        olds.setText(String.valueOf(score));
    }
}