편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.03.08

    안드로이드 확장 리스트뷰와 터치 이벤트에 관해서


    public class PlatformMenuContentsUI extends AbstractUIFragment {

    public void onAttach(Activity activity) { super.onAttach(activity); }

    public static PlatformMenuContentsUI newInstance() { PlatformMenuContentsUI f = new PlatformMenuContentsUI(); return f; }

    @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.platform_menu_contents_layout, container,false);

        // 리스트뷰에 대한 정의
    
      final String[] menuItems = { "General",
            "Rader",
            "Targets",
                "Alarm",
                "Initial Setup" };
    
      final TextView mart_reg_txt = (TextView) v.findViewById(R.id.mart_reg_txt);                                     // 텍스트뷰에 대한 정의
    
        final ExpandableListView general_elv = (ExpandableListView) v.findViewById(R.id.ex_general_list);               // 확장 리스트뷰에 대한 정의
        final ExpandableListView rader_elv = (ExpandableListView) v.findViewById(R.id.ex_rader_list);
    
        final ListView listView = (ListView) v.findViewById(R.id.main_list);                                            // 리스트뷰에 대한 정의
    
        final ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String>(                                          // 리스트뷰를 연결 시켜 줄 어댑터에 대한 정의, simple_list_item_1 을 xml 파일을 만들어서 변경해주면 폰트의 크기 및 색상이 변경 가능
            getActivity(),
            R.layout.ex_list_custom,
            menuItems
    );
        listView.setAdapter(listViewAdapter);
    
    
        /*
      general_elv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 부모들의 클릭 이벤트
            @Override
            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
                switch (i) {
                    case 0 :
                        Toast.makeText(getActivity(), "첫번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
    
                    case 1 :
                        Toast.makeText(getActivity(), "두번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
                }
                return false;
            }
        });
        */
    
    
        general_elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {  // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 자식들의 클릭 이벤트
            @Override
            public boolean onChildClick(ExpandableListView general_ex, View general_view, int i, int i1, long l) {
                if ( i == 0 ) { // i(부모)가 0번 일 경우
                    switch (i1) {
                        case 0 :
                            Toast.makeText(getActivity(), "한국어를 선택하였습니다.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 1 :
                            Toast.makeText(getActivity(), "日本語を 選択しました。 ", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 2 :
                            Toast.makeText(getActivity(), "You have chosen English.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 3 :
                            Toast.makeText(getActivity(), "中文选择了", Toast.LENGTH_SHORT).show();
                            break;
                    }
                }
    
                if ( i == 1 ) { // i(부모)가 1번 일 경우
                    switch (i1) {
                        case 0 :
                    }
                }
    
                if ( i == 2 ) {
                    switch(i1) {
                        case 0 :
                            Intent intent_naver = new Intent(Intent.ACTION_VIEW);
                            Uri uri_naver = Uri.parse("http://m.naver.com");
                            intent_naver.setData(uri_naver);
                            startActivity(intent_naver);
                            break;
    
                        case 1 :
                            Intent intent_daum = new Intent(Intent.ACTION_VIEW);
                            Uri uri_daum = Uri.parse("http://m.daum.net");
                            intent_daum.setData(uri_daum);
                            startActivity(intent_daum);
                            break;
                    }
                }
    
        return false;
    }
    

    }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // 리스트 클릭 이벤트 @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { switch (position) { case 0: // Toast.makeText(getActivity(), "첫번째 리스트를 클릭", Toast.LENGTH_SHORT).show(); general_elv.setAdapter(new GeneralTabsListAdapter()); rader_elv.setAdapter((ExpandableListAdapter) null); mart_reg_txt.setText(null); //mart_reg_txt.setText("첫번째 리스트를 클릭하셨습니다."); break;

         case 1:
            // Toast.makeText(getActivity(), "두번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter(new RaderTabsListAdapter());
                      mart_reg_txt.setText(null);
                      //mart_reg_txt.setText("Rader 리스트는 준비중입니다.");
            break;
    
         case 2:
            // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Targets 리스트는 준비중입니다.");
            break;
    
                  case 3 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Alarm 리스트는 준비중입니다.");
                      break;
    
                  case 4 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Initial Setup 리스트는 준비중입니다.");
                      break;
    
      }
    

    } });

      listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {  // 리스트의 롱 클릭 이벤트
          @Override
          public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
              switch (position) {
                  case 0 :
                      Toast.makeText(getActivity(), "첫번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 1 :
                      Toast.makeText(getActivity(), "두번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 2 :
                      break;
              }
              return true;
          }
      });
    

    return v; }

    public class GeneralTabsListAdapter extends BaseExpandableListAdapter {

      private String[] groups = {"☆Language", "☆Units", "☆Time Offset", "☆Key Volume", "☆Buzzer", "☆HDMI", "☆Factory Reset"};
    
      private String[][] chilren = {
              // 기본적으로 확장 리스트뷰의 글자크기 및 속성 변경 하는 커스텀 방법 찾기
              { "한국어", "日本語", "English", "中文" }, // Toast 출력, 1번 완료
              {  }, // 같은 영역에 텍스트 출력, 2번 완료 ( 추가로 뒤로가기 버튼 만들어보기 - 보류 )
              { "Naver(네이버)", "Daum(다음)" }, // 인터넷 연결, 3번 완료
              { "알림창", "알림창 [2]", "알림창 [3]" }, // 새로운 창 띄우기, 4번 완료 ( 리스트뷰, 라디오박스, 체크박스 모두 완료 )
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" }
      };
    
      // private Context mContext;
    
    
      @Override
      public int getGroupCount() {
          return groups.length;
      }
    
      @Override
      public int getChildrenCount(int i) {
          return chilren[i].length;
      }
    
      @Override
      public Object getGroup(int i) {
          return groups[i];
      }
    
      @Override
      public Object getChild(int i, int i1) {
          return chilren[i][i1];
      }
    
      @Override
      public long getGroupId(int i) {
          return i;
      }
    
      @Override
      public long getChildId(int i, int i1) {
          return i1;
      }
    
      @Override
      public boolean hasStableIds() {
          return true;
      }
    
      @Override
      public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getGroup(i).toString());
          return textView;
      }
    
      @Override
      public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getChild(i, i1).toString());
          return textView;
      }
    
      @Override
      public boolean isChildSelectable(int i, int i1)
      {
          return true;
      }
    

    }

    @Override
    public void DataProtocol(Object protocol) {
        FragmentProtocol proto = (FragmentProtocol) protocol;
        Log.i("TEST","CMD : "+proto.get_cmd()+" INDEXNAME "+ proto.get_title());
    }
    
    @Override
    public void setController(Object o) {
        // TODO Auto-generated method stub
        _controller = (MainController) o;
    }
    

    }

    일단 현재 코드입니다.

    이 코드에서 확장 리스트뷰에 부모그룹과 자식 그룹에 각각 커스텀을 해주려면 어떤식으로 해얗라까요?

    그리고 화면을 터치했을 때, 좌표를 구하려고 하는데 어떤식으로 코딩을 해야할까요?

    한 2주째 고민중인데 두 문제다 전혀 해결에 기미가 안보이네요 ㅠㅠ

  • 프로필 광자님의 편집
    날짜2018.03.08

    안드로이드 확장 리스트뷰와 터치 이벤트에 관해서


    public class PlatformMenuContentsUI extends AbstractUIFragment {

    public void onAttach(Activity activity) { super.onAttach(activity); }

    public static PlatformMenuContentsUI newInstance() { PlatformMenuContentsUI f = new PlatformMenuContentsUI(); return f; }

    @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.platform_menu_contents_layout, container,false);

        // 리스트뷰에 대한 정의
    
      final String[] menuItems = { "General",
            "Rader",
            "Targets",
                "Alarm",
                "Initial Setup" };
    
      final TextView mart_reg_txt = (TextView) v.findViewById(R.id.mart_reg_txt);                                     // 텍스트뷰에 대한 정의
    
        final ExpandableListView general_elv = (ExpandableListView) v.findViewById(R.id.ex_general_list);               // 확장 리스트뷰에 대한 정의
        final ExpandableListView rader_elv = (ExpandableListView) v.findViewById(R.id.ex_rader_list);
    
        final ListView listView = (ListView) v.findViewById(R.id.main_list);                                            // 리스트뷰에 대한 정의
    
        final ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String>(                                          // 리스트뷰를 연결 시켜 줄 어댑터에 대한 정의, simple_list_item_1 을 xml 파일을 만들어서 변경해주면 폰트의 크기 및 색상이 변경 가능
            getActivity(),
            R.layout.ex_list_custom,
            menuItems
    );
        listView.setAdapter(listViewAdapter);
    
    
        /*
      general_elv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 부모들의 클릭 이벤트
            @Override
            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
                switch (i) {
                    case 0 :
                        Toast.makeText(getActivity(), "첫번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
    
                    case 1 :
                        Toast.makeText(getActivity(), "두번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
                }
                return false;
            }
        });
        */
    
    
        general_elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {  // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 자식들의 클릭 이벤트
            @Override
            public boolean onChildClick(ExpandableListView general_ex, View general_view, int i, int i1, long l) {
                if ( i == 0 ) { // i(부모)가 0번 일 경우
                    switch (i1) {
                        case 0 :
                            Toast.makeText(getActivity(), "한국어를 선택하였습니다.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 1 :
                            Toast.makeText(getActivity(), "日本語を 選択しました。 ", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 2 :
                            Toast.makeText(getActivity(), "You have chosen English.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 3 :
                            Toast.makeText(getActivity(), "中文选择了", Toast.LENGTH_SHORT).show();
                            break;
                    }
                }
    
                if ( i == 1 ) { // i(부모)가 1번 일 경우
                    switch (i1) {
                        case 0 :
                    }
                }
    
                if ( i == 2 ) {
                    switch(i1) {
                        case 0 :
                            Intent intent_naver = new Intent(Intent.ACTION_VIEW);
                            Uri uri_naver = Uri.parse("http://m.naver.com");
                            intent_naver.setData(uri_naver);
                            startActivity(intent_naver);
                            break;
    
                        case 1 :
                            Intent intent_daum = new Intent(Intent.ACTION_VIEW);
                            Uri uri_daum = Uri.parse("http://m.daum.net");
                            intent_daum.setData(uri_daum);
                            startActivity(intent_daum);
                            break;
                    }
                }
    
        return false;
    }
    

    }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // 리스트 클릭 이벤트 @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { switch (position) { case 0: // Toast.makeText(getActivity(), "첫번째 리스트를 클릭", Toast.LENGTH_SHORT).show(); general_elv.setAdapter(new GeneralTabsListAdapter()); rader_elv.setAdapter((ExpandableListAdapter) null); mart_reg_txt.setText(null); //mart_reg_txt.setText("첫번째 리스트를 클릭하셨습니다."); break;

         case 1:
            // Toast.makeText(getActivity(), "두번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter(new RaderTabsListAdapter());
                      mart_reg_txt.setText(null);
                      //mart_reg_txt.setText("Rader 리스트는 준비중입니다.");
            break;
    
         case 2:
            // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Targets 리스트는 준비중입니다.");
            break;
    
                  case 3 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Alarm 리스트는 준비중입니다.");
                      break;
    
                  case 4 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Initial Setup 리스트는 준비중입니다.");
                      break;
    
      }
    

    } });

      listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {  // 리스트의 롱 클릭 이벤트
          @Override
          public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
              switch (position) {
                  case 0 :
                      Toast.makeText(getActivity(), "첫번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 1 :
                      Toast.makeText(getActivity(), "두번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 2 :
                      break;
              }
              return true;
          }
      });
    

    return v; }

    public class GeneralTabsListAdapter extends BaseExpandableListAdapter {

      private String[] groups = {"☆Language", "☆Units", "☆Time Offset", "☆Key Volume", "☆Buzzer", "☆HDMI", "☆Factory Reset"};
    
      private String[][] chilren = {
              // 기본적으로 확장 리스트뷰의 글자크기 및 속성 변경 하는 커스텀 방법 찾기
              { "한국어", "日本語", "English", "中文" }, // Toast 출력, 1번 완료
              {  }, // 같은 영역에 텍스트 출력, 2번 완료 ( 추가로 뒤로가기 버튼 만들어보기 - 보류 )
              { "Naver(네이버)", "Daum(다음)" }, // 인터넷 연결, 3번 완료
              { "알림창", "알림창 [2]", "알림창 [3]" }, // 새로운 창 띄우기, 4번 완료 ( 리스트뷰, 라디오박스, 체크박스 모두 완료 )
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" }
      };
    
      // private Context mContext;
    
    
      @Override
      public int getGroupCount() {
          return groups.length;
      }
    
      @Override
      public int getChildrenCount(int i) {
          return chilren[i].length;
      }
    
      @Override
      public Object getGroup(int i) {
          return groups[i];
      }
    
      @Override
      public Object getChild(int i, int i1) {
          return chilren[i][i1];
      }
    
      @Override
      public long getGroupId(int i) {
          return i;
      }
    
      @Override
      public long getChildId(int i, int i1) {
          return i1;
      }
    
      @Override
      public boolean hasStableIds() {
          return true;
      }
    
      @Override
      public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getGroup(i).toString());
          return textView;
      }
    
      @Override
      public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getChild(i, i1).toString());
          return textView;
      }
    
      @Override
      public boolean isChildSelectable(int i, int i1)
      {
          return true;
      }
    

    }

    @Override
    public void DataProtocol(Object protocol) {
        FragmentProtocol proto = (FragmentProtocol) protocol;
        Log.i("TEST","CMD : "+proto.get_cmd()+" INDEXNAME "+ proto.get_title());
    }
    
    @Override
    public void setController(Object o) {
        // TODO Auto-generated method stub
        _controller = (MainController) o;
    }
    

    }

    일단 현재 코드입니다.

    이 코드에서 확장 리스트뷰에 부모그룹과 자식 그룹에 각각 커스텀을 해주려면 어떤식으로 해얗라까요?

    그리고 화면을 터치했을 때, 좌표를 구하려고 하는데 어떤식으로 코딩을 해야할까요?

    한 2주째 고민중인데 두 문제다 전혀 해결에 기미가 안보이네요 ㅠㅠ

  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.03.06

    안드로이드 확장 리스트뷰와 터치 이벤트에 관해서


    public class PlatformMenuContentsUI extends AbstractUIFragment {

    public void onAttach(Activity activity) { super.onAttach(activity); }

    public static PlatformMenuContentsUI newInstance() { PlatformMenuContentsUI f = new PlatformMenuContentsUI(); return f; }

    @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.platform_menu_contents_layout, container,false);

        // 리스트뷰에 대한 정의
    
      final String[] menuItems = { "General",
            "Rader",
            "Targets",
                "Alarm",
                "Initial Setup" };
    
      final TextView mart_reg_txt = (TextView) v.findViewById(R.id.mart_reg_txt);                                     // 텍스트뷰에 대한 정의
    
        final ExpandableListView general_elv = (ExpandableListView) v.findViewById(R.id.ex_general_list);               // 확장 리스트뷰에 대한 정의
        final ExpandableListView rader_elv = (ExpandableListView) v.findViewById(R.id.ex_rader_list);
    
        final ListView listView = (ListView) v.findViewById(R.id.main_list);                                            // 리스트뷰에 대한 정의
    
        final ArrayAdapter<String> listViewAdapter = new ArrayAdapter<String>(                                          // 리스트뷰를 연결 시켜 줄 어댑터에 대한 정의, simple_list_item_1 을 xml 파일을 만들어서 변경해주면 폰트의 크기 및 색상이 변경 가능
            getActivity(),
            R.layout.ex_list_custom,
            menuItems
    );
        listView.setAdapter(listViewAdapter);
    
    
        /*
      general_elv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 부모들의 클릭 이벤트
            @Override
            public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
                switch (i) {
                    case 0 :
                        Toast.makeText(getActivity(), "첫번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
    
                    case 1 :
                        Toast.makeText(getActivity(), "두번째 확장 리스트뷰 입니다", Toast.LENGTH_SHORT).show();
                        break;
                }
                return false;
            }
        });
        */
    
    
        general_elv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {  // 리스트뷰의 첫 번째 항목에 대한 확장 리스트뷰의 자식들의 클릭 이벤트
            @Override
            public boolean onChildClick(ExpandableListView general_ex, View general_view, int i, int i1, long l) {
                if ( i == 0 ) { // i(부모)가 0번 일 경우
                    switch (i1) {
                        case 0 :
                            Toast.makeText(getActivity(), "한국어를 선택하였습니다.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 1 :
                            Toast.makeText(getActivity(), "日本語を 選択しました。 ", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 2 :
                            Toast.makeText(getActivity(), "You have chosen English.", Toast.LENGTH_SHORT).show();
                            break;
    
                        case 3 :
                            Toast.makeText(getActivity(), "中文选择了", Toast.LENGTH_SHORT).show();
                            break;
                    }
                }
    
                if ( i == 1 ) { // i(부모)가 1번 일 경우
                    switch (i1) {
                        case 0 :
                    }
                }
    
                if ( i == 2 ) {
                    switch(i1) {
                        case 0 :
                            Intent intent_naver = new Intent(Intent.ACTION_VIEW);
                            Uri uri_naver = Uri.parse("http://m.naver.com");
                            intent_naver.setData(uri_naver);
                            startActivity(intent_naver);
                            break;
    
                        case 1 :
                            Intent intent_daum = new Intent(Intent.ACTION_VIEW);
                            Uri uri_daum = Uri.parse("http://m.daum.net");
                            intent_daum.setData(uri_daum);
                            startActivity(intent_daum);
                            break;
                    }
                }
    
        return false;
    }
    

    }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // 리스트 클릭 이벤트 @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { switch (position) { case 0: // Toast.makeText(getActivity(), "첫번째 리스트를 클릭", Toast.LENGTH_SHORT).show(); general_elv.setAdapter(new GeneralTabsListAdapter()); rader_elv.setAdapter((ExpandableListAdapter) null); mart_reg_txt.setText(null); //mart_reg_txt.setText("첫번째 리스트를 클릭하셨습니다."); break;

         case 1:
            // Toast.makeText(getActivity(), "두번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter(new RaderTabsListAdapter());
                      mart_reg_txt.setText(null);
                      //mart_reg_txt.setText("Rader 리스트는 준비중입니다.");
            break;
    
         case 2:
            // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Targets 리스트는 준비중입니다.");
            break;
    
                  case 3 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Alarm 리스트는 준비중입니다.");
                      break;
    
                  case 4 :
                      // Toast.makeText(getActivity(), "세번째 리스트를 클릭", Toast.LENGTH_SHORT).show();
                      general_elv.setAdapter((ExpandableListAdapter) null);
                      rader_elv.setAdapter((ExpandableListAdapter) null);
                      mart_reg_txt.setText("Initial Setup 리스트는 준비중입니다.");
                      break;
    
      }
    

    } });

      listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {  // 리스트의 롱 클릭 이벤트
          @Override
          public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
              switch (position) {
                  case 0 :
                      Toast.makeText(getActivity(), "첫번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 1 :
                      Toast.makeText(getActivity(), "두번째 리스트를 롱 클릭", Toast.LENGTH_SHORT).show();
                      break;
    
                  case 2 :
                      break;
              }
              return true;
          }
      });
    

    return v; }

    public class GeneralTabsListAdapter extends BaseExpandableListAdapter {

      private String[] groups = {"☆Language", "☆Units", "☆Time Offset", "☆Key Volume", "☆Buzzer", "☆HDMI", "☆Factory Reset"};
    
      private String[][] chilren = {
              // 기본적으로 확장 리스트뷰의 글자크기 및 속성 변경 하는 커스텀 방법 찾기
              { "한국어", "日本語", "English", "中文" }, // Toast 출력, 1번 완료
              {  }, // 같은 영역에 텍스트 출력, 2번 완료 ( 추가로 뒤로가기 버튼 만들어보기 - 보류 )
              { "Naver(네이버)", "Daum(다음)" }, // 인터넷 연결, 3번 완료
              { "알림창", "알림창 [2]", "알림창 [3]" }, // 새로운 창 띄우기, 4번 완료 ( 리스트뷰, 라디오박스, 체크박스 모두 완료 )
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" },
              { "일번", "이번", "삼번", "사번" }
      };
    
      // private Context mContext;
    
    
      @Override
      public int getGroupCount() {
          return groups.length;
      }
    
      @Override
      public int getChildrenCount(int i) {
          return chilren[i].length;
      }
    
      @Override
      public Object getGroup(int i) {
          return groups[i];
      }
    
      @Override
      public Object getChild(int i, int i1) {
          return chilren[i][i1];
      }
    
      @Override
      public long getGroupId(int i) {
          return i;
      }
    
      @Override
      public long getChildId(int i, int i1) {
          return i1;
      }
    
      @Override
      public boolean hasStableIds() {
          return true;
      }
    
      @Override
      public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getGroup(i).toString());
          return textView;
      }
    
      @Override
      public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
          TextView textView = new TextView(PlatformMenuContentsUI.this.getActivity());
          textView.setText(getChild(i, i1).toString());
          return textView;
      }
    
      @Override
      public boolean isChildSelectable(int i, int i1)
      {
          return true;
      }
    

    }

    @Override
    public void DataProtocol(Object protocol) {
        FragmentProtocol proto = (FragmentProtocol) protocol;
        Log.i("TEST","CMD : "+proto.get_cmd()+" INDEXNAME "+ proto.get_title());
    }
    
    @Override
    public void setController(Object o) {
        // TODO Auto-generated method stub
        _controller = (MainController) o;
    }
    

    }

    일단 현재 코드입니다.

    이 코드에서 확장 리스트뷰에 부모그룹과 자식 그룹에 각각 커스텀을 해주려면 어떤식으로 해얗라까요?

    그리고 화면을 터치했을 때, 좌표를 구하려고 하는데 어떤식으로 코딩을 해야할까요?

    한 2주째 고민중인데 두 문제다 전혀 해결에 기미가 안보이네요 ㅠㅠ