Привет всем, мне интересно, как я могу использовать общий вызов одного из моих классов, чтобы минимизировать свой код.
В настоящее время у меня есть код if else, который определяет какой класс следует загрузить.
В качестве примера в моей основной активности:
public class NBC {
public static void sendTheCmd(String theCmd, String TV, List all_TvType, btnNumber, Boolean keyboard) {
try {
...
} catch (Exception e) {
Log.d("", e.getMessage());
}
return null;
}
}
Поэтому вместо всех этих if/else я хотел бы создать переменную, содержащую любой из этих классов (ABC, NBC, CBS и т. д.), чтобы я мог делать вместо этого что-то вроде этого:
Привет всем, мне интересно, как я могу использовать общий вызов одного из моих классов, чтобы минимизировать свой код. В настоящее время у меня есть код if else, который определяет какой класс следует загрузить. В качестве примера в моей основной активности: [code]if (btnName.equals("up")) if (globalRoom.equals("ABC")) { btnNumber = 0; ABC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("NBC")) { btnNumber = 1; NBC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("CBS")) { btnNumber = 2; CBS.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("REK")) { btnNumber = 3; REK.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("DSR")) { btnNumber = 4; DSR.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("LR2")) { btnNumber = 0; LR2.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } } else if (btnName.equals("down")) if (globalRoom.equals("ABC")) { btnNumber = 0; ABC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("NBC")) { btnNumber = 1; NBC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("CBS")) { btnNumber = 2; CBS.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("REK")) { btnNumber = 3; REK.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("DSR")) { btnNumber = 4; DSR.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (globalRoom.equals("LR2")) { btnNumber = 0; LR2.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } } etc etc.... [/code] В каждом из моих классов класс ABC.java: [code]public class ABC { public static void sendTheCmd(String theCmd, String TV, List all_TvType, btnNumber, Boolean keyboard) { try { ... } catch (Exception e) { Log.d("", e.getMessage()); }
return null; } } [/code] Класс NBC.java: [code]public class NBC { public static void sendTheCmd(String theCmd, String TV, List all_TvType, btnNumber, Boolean keyboard) { try { ... } catch (Exception e) { Log.d("", e.getMessage()); }
return null; } } [/code] Поэтому вместо всех этих if/else я хотел бы создать переменную, содержащую любой из этих классов (ABC, NBC, CBS и т. д.), чтобы я мог делать вместо этого что-то вроде этого: [code]GlobalClass GC;
if (globalRoom.equals("ABC")) { btnNumber = 0; GC = new ABC(); } else if (globalRoom.equals("NBC")) { btnNumber = 1; GC = new NBC(); } else if (globalRoom.equals("CBS")) { btnNumber = 2; GC = new CBS(); } else if (globalRoom.equals("REK")) { btnNumber = 3; GC = new REK(); } else if (globalRoom.equals("DSR")) { btnNumber = 4; GC = new DSR(); } else if (globalRoom.equals("LR2")) { btnNumber = 0; GC = new LR2(); }
if (btnName.equals("up")) { GC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false); } else if (btnName.equals("down")) { GC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false); } else if (btnName.equals("Keyboard")) { GC.sendTheCmd("text?", globalTV, all_TvType, btnNumber, false); } else if (btnName.equals("Other")) { //Not sure what to make this icon } [/code] Я подумал, что можно сделать что-то вроде этого: [code]List