2013-07-31 5 views
1

안녕하세요 저는이 주제에 대해 여전히이 문제를 해결할 수없는 많은 검색을했습니다. 저는 안드로이드에서 꽤 새로 생겼습니다. ExpandableListView에서 부모 위치를 얻지 못하고 있지만 childPosition 값을 얻고 있습니다. groupposition하지 않습니다.ExpandableListView ParentPosition을 가져 오지 못함

   catlist = (ExpandableListView) findViewById(R.id.category_list); 
      final ExpandableListAdapter expListAdapter = new ExpandableListAdapter(
        CatergoryActivity.this, groupList, expandableCategories); 
      catlist.setAdapter(expListAdapter); 

      catlist.setOnChildClickListener(new OnChildClickListener() { 

       @Override 
       public boolean onChildClick(ExpandableListView parent, 
         View v, int groupPosition, int childPosition, 
         long id) { 
        Intent nextact = new Intent(CatergoryActivity.this, 
          MobileActivity.class); 

        String childPosition = expListAdapter.getChild(groupPosition, childPosition); 

        System.out.println("childPosition------------------------>>>>>>>>>>>>"+childPosition); 


        nextact.putExtra("locId", locId); 
        nextact.putExtra("childpos", 
          childList.get(childPosition)); 
        nextact.putExtra("grouppos", gruopPosition); 

        startActivity(nextact); 
        return false; 
       } 
      }); 

답변

0

onChildClick의 API를 refference 설명에 따르면, 당신은 이미 상위 그룹의 위치를 ​​가지고있다.

공공 추상 부울 onChildClick (ExpandableListView 부모,보기 V, INT의 groupPosition, INT의 childPosition, 긴 ID) API 레벨 추가 1

콜백 방법이 확장 목록에있는 아이가있을 때 호출되는 클릭 함.

매개 변수

  • 부모 - 클릭 된 아이를 포함하는 그룹 위치 - 클릭이
  • V
  • groupPosition를 클릭 된 확장 목록/ListView에 내 -THE보기를 일어난 ExpandableListView
  • childPosition - 그룹 내의 하위 위치
  • id - 클릭 된 자식의 행 ID

반환 진정한 클릭은

를 처리 한 경우 편집 : 당신이 필요로하는 onChildClick에서 두 위치가 - 부모아이. 부모는 그룹의 위치를 ​​정의하고 자식은 그룹 내의 위치를 ​​정의합니다. adapter.getChild (groupPos, childPos)는 지정된 하위 항목과 관련된 객체를 반환합니다. 이 itemData 값을 얻을 필요가있는 경우

catlist.setOnChildClickListener(new OnChildClickListener() { 

      @Override 
      public boolean onChildClick(ExpandableListView parent, 
        View v, int groupPosition, int childPosition, 
        long id) { 

       System.out.println("childPosition: " + childPosition); 
       System.out.println("groupPosition: " + groupPosition); 

       // only if you need related data 
       Object itemData = expListAdapter.getChild(groupPosition, childPosition); 


      } 
     }); 

, 당신은 당신의 어댑터 getChild() 방법을 구현해야합니다.

+0

답장을 보내 주셔서 감사합니다.하지만 변수에 해당 위치를 가져 오는 코드가 무엇인지 알려주십시오. String with childPosition = expListAdapter.getChild (groupPosition, childPosition); – user2384710

+0

고마워 .. 사실 그 자리의 가치를 묻는 중이었습니다. 새 액티비티에 문자열로 값을 보내야 했으므로 – user2384710

+0

@ user2384710 답변을 편집했습니다. 어댑터의 getChild() 메소드를 재정 의하여 사용해야합니다. 항목 그룹 및 하위 위치에 따라 올바른 데이터. – Antonio

관련 문제