我有一个应该包含以下内容的测验应用: 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();
}
}
答案 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++;
}