У меня есть следующий переключатель:коммутатор заявление терпит неудачу в гнездовой типа
Мой groupPosition является 0 и childPosition является 1:
switch (groupPosition) {
case 0:
switch (childPosition) {
case 0:
if (NetworkManager.isNetworkAvailable(this)) {
new UserAwayTask().execute();
} else
Toast.makeText(this, "Network not available", Toast.LENGTH_LONG).show();
break;
case 1:
selection = null;
selectionArgs = null;
break;
case 2:
selection = Employee.COL_COUNTRY + " IS ? COLLATE NOCASE";
selectionArgs = new String[]{valueReceived};
}
case 1:
selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
selectionArgs = new String[]{valueReceived};
break;
case 2:
empIDList = GetAllTeamLeaders.teamLeaders(this, TeamLeader.COL_TEAMMEMBERID, TeamLeader.COL_TEAMLEADERNAME + " IS ? ", new String[]{valueReceived});
selection = Employee.COL_EMPID + " IN (" + TextUtils.join(",", Collections.nCopies(empIDList.size(), "?")) + ")";
selectionArgs = empIDList.toArray(new String[empIDList.size()]);
break;
}
Но каждый раз, когда мой выбор: отдел IS? COLLATE NOCASE , а аргументы выбора - от случая 1 от внешнего переключателя.
Так что:
case 1:
selection = Employee.COL_DEPARTMENT + " IS ? COLLATE NOCASE";
selectionArgs = new String[]{valueReceived};
break;
становится выполнен вместо:
case 2:
selection = Employee.COL_COUNTRY + " IS ? COLLATE NOCASE";
selectionArgs = new String[]{valueReceived};
Однако если я комментирую Внешний коммутатор случай 1 и случай 2. Я получаю желаемый результат.
Что мне здесь не хватает?
Вы пропускаете заявление перерыва для случая 0: – arados
Вам нужна точка с запятой и 'break' после' switch' заявления в 'случае 0' или он перейдет к «случаю 1», когда он завершится. – lurker