2016-10-12 3 views
0

저는 "getGroupView (int listPosition, boolean isExpanded, View convertView, ViewGroup parent)"메소드로 일주일 동안 싸우고 있습니다.ExpandableListView를 만든 객체에 따라 (제목)보기를 어떻게 변경합니까?

내가 찾은 하나 중요한 건 : convertView의

  • 배경 색상 :

    • listPosition 및 convertView는 항상

      이 무엇
      @Override 
      public View getGroupView(int listPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
          String listTitle = getGroup(listPosition).toString(); 
      
          if (convertView == null) { 
           LayoutInflater layoutInflater = (LayoutInflater) this.context. 
             getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
           convertView = layoutInflater.inflate(R.layout.list_group, null); 
          } 
      
          TextView listTitleTextView = (TextView) convertView.findViewById(R.id.listTitle); 
      
      
          Item item = (Item) getGroup(listPosition); //Returns item from ArrayList 
      
          // The part behind && should ensure that no wrong passes happen. But they do anyway. 
          if (item.AllFound() && item.toString(Item.BASE_TITLE_FORMAT).equals(listTitleTextView.getText())){ 
           //listTitleTextView.setBackgroundColor(Color.GREEN); 
           convertView.setBackgroundColor(Color.GREEN); 
          } 
      
          listTitleTextView.setText(listTitle); 
          return convertView; 
      } 
      

    관련이 없습니다 (또는 listTitleTextView) 항목이 녹색 인 경우 항목 a t groupPosition은 AllFound() 메서드에서 TRUE를 반환합니다.

  • 많은 경우, convertView는 여러 번 사용하면 안되지만 색상이 지정됩니다.

하지만 그건 내 횡설수설입니다. 나는 모든 것을 다시 쓰려고한다.

그래서 내가 만든 객체에 따라 ExpandableList의 (제목)보기를 변경하는 방법은 무엇입니까? (물론 당신은 내가 올바른 개체를 검색해야 어떻게 listPosition에 의존하지 수 있습니까?)

답변

0
convertView 재사용 할 것이다

, 고려 모든 상황을

if (item.AllFound() && item.toString(Item.BASE_TITLE_FORMAT).equals(listTitleTextView.getText())){ 
    //listTitleTextView.setBackgroundColor(Color.GREEN); 
    convertView.setBackgroundColor(Color.GREEN); 
} else{ 
**Add code here to set backgroundColor** 
}