将编辑文本传递给If语句的问题

时间:2017-12-04 20:24:23

标签: android

我有一个应该包含以下内容的测验应用: 1-个无线电组/按钮 2-复选框 3- editText

所有人都应该计算得分。我设法让无线电组,复选框工作并计算得分。但是editText有问题

我试图比较name2变量中的值,但我无法这样做。我已经实现了.equals语法,但它没有相应的工作。

任何建议/解决方案都很感激。

public class Quiz extends AppCompatActivity {
int score = 0;
String name;
String name2;


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

}

public void onRadioButtonCliked(View view) {

    Boolean checked = ((RadioButton) view).isChecked();
    switch (view.getId()) {
        case R.id.yes_radio_buttonG1B3:
            if (checked)
                score++;
            break;
        case R.id.yes_radio_buttonG2B2:
            if (checked)
                score++;
            break;
        case R.id.yes_radio_buttonG3B2:
            score++;
            if (checked)
                break;
        case R.id.yes_radio_buttonG4B1:
            if (checked)
                score++;
            break;
        case R.id.yes_radio_buttonG5B2:
            if (checked)
                score++;
            break;
        case R.id.yes_radio_buttonG6B3:
            if (checked)
                score++;
            break;
    }
}


public void onCheckBoxCliked(View view) {

    Boolean checked = ((CheckBox) view).isChecked();
    CheckBox cB1 = (CheckBox) findViewById(R.id.checkBox1);
    CheckBox cB2 = (CheckBox) findViewById((R.id.checkBox2));
    CheckBox cB3 = (CheckBox) findViewById(R.id.checkBox3);

    if (cB1.isChecked() && cB2.isChecked() && !cB3.isChecked()) {
        score++;
    }


}

public void EditText(View view) {
    EditText text = (EditText) findViewById(R.id.editText1);
    name2 = text.getText().toString();

    if (name2.equals("8")) {
        score++;

    }
}


public void submitOrder(View view) {
    EditText username = (EditText) findViewById(R.id.editText);
    name = username.getText().toString();

    Toast.makeText(this, "Thank you " + name, Toast.LENGTH_SHORT).show();

    Toast.makeText(this, "You have got 8/" + score, Toast.LENGTH_SHORT).show();

    }
}

3 个答案:

答案 0 :(得分:0)

由于它是一个字符串变量,你必须使用""表明它是一个字符串。 整数仅适用于int变量类型。

if(name2.equals("8")){
    score++;
}

答案 1 :(得分:0)

尝试用" 8"替换8。因为你应该比较一个字符串,而不是一个整数。

答案 2 :(得分:0)

正如评论和其他两个答案中已经提到的,您无法将字符串与数字进行比较。

不是检查String,而是将该字符串转换为整数(假设它是一个有效的int),而不是比较int。

首先,转换:

int value;
try{
    value = Integer.parseInt(name2);//throws an exception if it isn't a valid integer or if name == null
}catch(Exception e){
    return;//not valid, don't continue
}

然后比较:

if(value == 8){
    score++;
}