在匿名 class 中打破 case
break from case while inside an anonymous class
我正在为一个大学项目使用 firebase 数据库。我认为 is 做什么并不重要。我的问题很清楚。为什么它不让我在 case R.id.first 内的 case 2 中中断。这是一个编译错误,只是说 "break outside switch or loop"。我不知道怎么回事。我将不胜感激 :)
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.first:
mDatabase.child("questions").child("basic").child("comments").child("first").child("answers").child("correct").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
switch (Integer.parseInt(dataSnapshot.getValue().toString())){
case 1:
break;
case 2:
mDatabase.child("questions").child("basic").child("comments").child("first").child("mistakes").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
getValue = Integer.parseInt(dataSnapshot.getValue().toString());
getValue++;
mDatabase.child("questions").child("basic").child("comments").child("first").child("mistakes").setValue(getValue);
break;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
case R.id.second:
break;
case R.id.third:
break;
}
}
});
break
适用于离开 switch
或任何 loop
。这 不适用于 突破 函数 。在您的情况下,您正在尝试使用 break
从回调 function onDataChange()
中断。这将始终产生 语法错误 .
我正在为一个大学项目使用 firebase 数据库。我认为 is 做什么并不重要。我的问题很清楚。为什么它不让我在 case R.id.first 内的 case 2 中中断。这是一个编译错误,只是说 "break outside switch or loop"。我不知道怎么回事。我将不胜感激 :)
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.first:
mDatabase.child("questions").child("basic").child("comments").child("first").child("answers").child("correct").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
switch (Integer.parseInt(dataSnapshot.getValue().toString())){
case 1:
break;
case 2:
mDatabase.child("questions").child("basic").child("comments").child("first").child("mistakes").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
getValue = Integer.parseInt(dataSnapshot.getValue().toString());
getValue++;
mDatabase.child("questions").child("basic").child("comments").child("first").child("mistakes").setValue(getValue);
break;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
break;
case R.id.second:
break;
case R.id.third:
break;
}
}
});
break
适用于离开 switch
或任何 loop
。这 不适用于 突破 函数 。在您的情况下,您正在尝试使用 break
从回调 function onDataChange()
中断。这将始终产生 语法错误 .