public class a {
private static int[] idLayoutMenuButtonNumber = {
R.id.idButton_a,
R.id.idButton_b,
R.id.idButton_c,
R.id.idButton_d,
R.id.idButton_e,
};
public static Button[] idLayoutMenuButton = new Button[idLayoutMenuButtonNumber.length];
public static Menu_a menu_a;
public static Menu_b menu_b;
public static Menu_c menu_c;
public static Menu_d menu_d;
public static Menu_f menu_f;
public static Menu_Base menuSystemInstances[] = null;
int selectedMainMenuIndex,
final static int MAIN_MENU_NONE = -1;
final static int MAIN_MENU_a = 0;
final static int MAIN_MENU_b = 1;
final static int MAIN_MENU_c = 2;
final static int MAIN_MENU_d = 3;
final static int MAIN_MENU_e = 4;
final static int MAIN_MENU_f = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MenuButtonDefine(idLayoutMenuButton, idLayoutMenuButtonNumber);
menu_a = new Menu_a();
menu_b = new Menu_b();
menu_c = new Menu_c();
menu_d = new Menu_d();
menu_e = new Menu_e();
menu_f = new Menu_f();
menuSystemInstances = new Menu_Base[] {
menu_a,
menu_b,
menu_c,
menu_d,
menu_e,
menu_f,
};
SYSTEM_NENU_MAIN_NUM = menuSystemInstances.length;
selectedMainMenuIndex = MAIN_MENU_NONE;
}
public void MenuButtonDefine(final Button[] idLayoutMenuButton, int[] idLayoutMenuButtonNumber) {
idImageButton_Exit = findViewById(R.id.idImageButton_Exit);
idImageButton_Exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
_Adpater_Menu.setVisibility(View.GONE);
selectedMainMenuIndex = MAIN_MENU_NONE;
}
});
for(int i = 0 ; i < idLayoutMenuButton.length ; i++ ) {
idLayoutMenuButton[i] = findViewById(idLayoutMenuButtonNumber[i]);
idLayoutMenuButton[i].setOnClickListener(this);
idLayoutMenuButton[i].setOnTouchListener(this);
}
}
public void selectSubMenu(int index){
String subMenuTitleName[] = { "a", "b", "c", "d", "e", "f" };
idLayoutMenuButton[selectedMainMenuCursor].setSelected(false);
selectedMainMenuCursor = index;
idLayoutMenuButton[selectedMainMenuCursor].setSelected(true);
selectedMainMenuIndex = index;
idLayoutTOP_TITLEName.setText(subMenuTitleName[selectedMainMenuIndex]);
idLayoutMenuButton[saveMenuPosition].setBackgroundColor(Color.TRANSPARENT);
idLayoutMenuButton[saveMenuPosition].setTextColor(Color.WHITE);
switch(selectedMainMenuIndex){
case MAIN_MENU_a :
saveMenuPosition = MAIN_MENU_a;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_a).addToBackStack(null).commit(); break;
case MAIN_MENU_b :
saveMenuPosition = MAIN_MENU_b;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_b).addToBackStack(null).commit(); break;
case MAIN_MENU_c :
saveMenuPosition = MAIN_MENU_c;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_c).addToBackStack(null).commit(); break;
case MAIN_MENU_d :
saveMenuPosition = MAIN_MENU_d;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_d).addToBackStack(null).commit(); break;
case MAIN_MENU_e :
saveMenuPosition = MAIN_MENU_e;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_e).addToBackStack(null).commit(); break;
case MAIN_MENU_f :
saveMenuPosition = MAIN_MENU_f;
getFragmentManager().beginTransaction().replace(R.id.idLayoutCNETER_SettingName, menu_f).addToBackStack(null).commit(); break;
}
}
}
현재 Fragment를 호출하는 코드는 위와 같습니다.
정확히는 저런 형식입니다.
호출 방법이 제대로 적혀있지 않은데
현재 보여드리는 코드에서는 6개 정도의 버튼이 있지만
실제로는 18개 정도 버튼이 있고 각각 다른 플래그먼트를 연결해줍니다.
하드키 중 하나를 누르면 메뉴 화면이 GONE에서 VIS 처리 되고, 그 이후 그 안에 버튼들을 이용하여
각각의 Fragment를 호출합니다.
저번에 질문했을 때, 어느 유저분이 알려주신데로 메인상에 무거운 쓰레드가 돌고있는지를 보라고 하셨는데, 좀 어려운 작업의 쓰레드가 돌고있긴하지만 그렇게 까지 심한 건 아니기에 그 문제는 아니라고 생각합니다.
첫번째 호출에서만 딜레이가 걸리는 문제,
동일한 항목을 두번째 호출할 때는 딜레이가 전혀 없습니다만,
서로 다른 항목을 제일 처음 호출 했을 때는 딜레이가 심합니다..