2011-10-26 2 views
0

DB를 쿼리하는 SimpleCursorTreeAdapter와 함께 ExpandableListActivity를 작성하고 있습니다. 나는 아주 어린 아이 안에 버튼을 추가했는데, 이제는 버튼이 클릭 된 목록의 항목에 대한 정보를 얻는데 어려움을 겪고 있습니다. 내 문제는 내가 어댑터 내에서 데이터를 처리하는 방법을 잘 이해하지 못한다고 생각합니다. 대부분의 예는 this one과 같은 listadapter에 관한 것입니다. 내 어댑터 getChildView 구현을 가지고 내가 얻을 수없는 것은 원래 커서에서 클릭 한 그룹의 _id를 검색하는 것입니다. 왜냐하면 나는 어떻게 알지 못했기 때문에 다음 코드를 사용하여 그룹 텍스트 뷰에서 이름을 얻으려고 시도했지만 클릭 한 모든 자식에서 목록의 첫 번째 항목의 이름을 가져옵니다. 내가 그것을했을 때 나는 getGroupView 방법을 구현하지 않은 BTYExpandableList 자식 내부 버튼이있는보기

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
     View v = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent); 
     v.inflate(getApplicationContext(),R.layout.productsexpchilditem, null); 

     Button button = (Button)v.findViewById(R.id.button1); 
     String name=((TextView)parent.findViewById(R.id.txt_exp_products_name_item)).getText().toString(); 
     button.setTag(name); 

     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(ProductsActivityExp.this, "TOAST "+v.getTag(), Toast.LENGTH_SHORT).show(); 
      } 
     });  
     return v; 
    } 

, 원인은 나는 (그러나 아이의) 그룹의 모든 표시되는 텍스트를 잃었다. cursorTreeAdapter를 사용한 작업은 listadapter와는 다른 특정 구현을 가지고 있다고 생각합니다.

답변

0

나는 ExpandableListView를 사용하지 않았지만 부모를 통해 이름 값을 가져 오는 것이 이상하게 보입니다. 당신이 모든 버튼에 대해 동일한 이름을 얻는 것은 당연한 일입니다. 세부 사항을 설명 할 수 있습니까?

+0

죄송합니다. DB 테이블 항목에서 가져옵니다. 목록의 각 행은 항목의 이름이고, 이름이있는 행을 클릭하여 확장하면 자세한 내용을 볼 수 있습니다. 그 아이템. 세부 정보 옆에는 버튼이 있습니다.이 버튼을 클릭하면 특정 항목에 대한 작업이 수행됩니다. 문제는 버튼이 "자식"내부에 있고 그곳에서 항목 속성을 가져올 수 없다는 것입니다 (특정 : 단추가있는 상태에서 자식에 있지 않지만 그룹에 있던 항목의 이름을 클릭하여 보내기 퍼지는). 희망이 더 분명합니다. – panda12

+0

이해하십시오. getGroup (groupPosition) .get ...을 통해 getGroupId (groupPosition) 또는 다른 열의 값에 set button 태그를 사용해보십시오. – HighFlyer

+0

문제는 필자가 필요에 따라 CursorTreeAdapter 인터페이스를 구현하지 않았다는 것입니다. SimpleCursorTreeAdapter에서 일반 CursorTreeAdapter로 변경하고 자식 및 그룹에 대한 "바인딩"메서드를 재정의 한 후 모든 작업을 수행해야합니다. – panda12

관련 문제