마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ViewHolder 이용 관련 질문

0 추천

ViewHolder 를 이용해서 리스트뷰에 자료를 뿌려주고 하나를 클릭이벤트로 주었는데...

클릭시 dropdown은 되는데 밑으로 드래그했다가 다시 올라가면 dropdown됫던것이 사라집니다

어떤문제일까요;

 public View getView(int position, View convertView, ViewGroup parent) {
  final MainList listData;
  final ViewHolder holder;
  
  int day[];
  
  listData = this.arrayList.get(position);
  
  if(convertView == null) {
      convertView = this.inflater.inflate(this.layout, null);
  
      holder = new ViewHolder();
      
      holder.layout01 = (LinearLayout)convertView.findViewById(R.id.layout01);
      holder.layout02 = (LinearLayout)convertView.findViewById(R.id.layout02);
      holder.day = (TextView) convertView.findViewById(R.id.daytxt);
      holder.intxt = (TextView) convertView.findViewById(R.id.intxt);
      holder.txt4 = (TextView) convertView.findViewById(R.id.textView4);
      holder.txt5 = (TextView) convertView.findViewById(R.id.textView5);
      holder.txt6 = (TextView) convertView.findViewById(R.id.textView6);
      holder.txt7 = (TextView) convertView.findViewById(R.id.textView7);
      holder.txt8 = (TextView) convertView.findViewById(R.id.textView8);   
      holder.txt9 = (TextView) convertView.findViewById(R.id.textView9);
      holder.txt10 = (TextView) convertView.findViewById(R.id.textView10);
      holder .edit = (Button) convertView.findViewById(R.id.editbutton);
      
      
      convertView.setTag(holder);
  } else {
   holder = (ViewHolder) convertView.getTag();
  }
  
  Log.d("test", "adapter...");
  holder.day.setText(String.valueOf(listData.getday()));
  
  final Animation drop = AnimationUtils.loadAnimation(this.context, R.animator.dropdown);
  final Animation rise = AnimationUtils.loadAnimation(this.context, R.animator.riseup);
  holder.layout02.setVisibility(View.GONE);
  holder.layout01.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    
    String strColor = "#FFFFFF";
    
    holder.layout01.setBackgroundResource(R.drawable.main_box01);
    holder.day.setTextColor(Color.parseColor(strColor));
    holder.intxt.setTextColor(Color.parseColor(strColor));
    holder.txt4.setTextColor(Color.parseColor(strColor));
    holder.txt5.setTextColor(Color.parseColor(strColor));
    holder.txt6.setTextColor(Color.parseColor(strColor));
    holder.txt7.setTextColor(Color.parseColor(strColor));
    holder.txt8.setTextColor(Color.parseColor(strColor));
    holder.txt9.setTextColor(Color.parseColor(strColor));
    holder.txt10.setTextColor(Color.parseColor(strColor));
    holder.layout02.startAnimation(drop);
    holder.layout02.setVisibility(View.VISIBLE);
    
   }
  });
  holder.layout02.setOnClickListener(new OnClickListener() {

   public void onClick(View v) {
    
    String strColor = "#7e7e7e";
    
    holder.layout01.setBackgroundResource(R.drawable.main_box02);
    holder.day.setTextColor(Color.parseColor(strColor));
    holder.intxt.setTextColor(Color.parseColor(strColor));
    holder.txt4.setTextColor(Color.parseColor(strColor));
    holder.txt5.setTextColor(Color.parseColor(strColor));
    holder.txt6.setTextColor(Color.parseColor(strColor));
    holder.txt7.setTextColor(Color.parseColor(strColor));
    holder.txt8.setTextColor(Color.parseColor(strColor));
    holder.txt9.setTextColor(Color.parseColor(strColor));
    holder.txt10.setTextColor(Color.parseColor(strColor));
    holder.layout02.startAnimation(rise);
    holder.layout02.setVisibility(View.GONE);
    holder.layout01.setVisibility(View.VISIBLE);
    
    
   }
  });
  return convertView;
 }
}

 

WelchsKiller (600 포인트) 님이 2014년 1월 23일 질문

1개의 답변

0 추천
리스트 뷰가 원래 그렇습니다. 오류가 있는건 아니고 원래 특성이 그래요 다음을 참고해 보세요

http://stackoverflow.com/questions/5300962/getviewtypecount-and-getitemviewtype-methods-of-arrayadapter
aucd29 (218,390 포인트) 님이 2014년 1월 23일 답변
...