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

getview에 if-else문을 어떻게 써야할지 조언 좀 부탁해요

0 추천
public class MyListAdapter extends BaseAdapter {

private LayoutInflater Inflater;

 public MyListAdapter(Context context) {
   Inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  }

public int getCount() {
   return mpmList.size();
  }

public MpmDto getItem(int position) {
   return mpmList.get(position);
  } 

public long getItemId(int position) {
   return position;
  }

public View getView(final int position, View convertView, ViewGroup parent) {i

final MpmDto item = mpmList.get(position);
   
   View v = Inflater.inflate(R.layout.row, parent, false);
   //View v2 = Inflater.inflate(R.layout.row2, parent, false);
   //if (item.flag.equals("0")) {
   // ImageView icon = (ImageView)v.findViewById(R.id.phone);
   //}else{
   // ImageView icon = (ImageView)v.findViewById(R.id.device);
   //}
   
   body = (LinearLayout) v.findViewById(R.id.body);
         check = (CheckBox) v.findViewById(R.id.check);
   TextView date = (TextView) v.findViewById(R.id.date);
   TextView place = (TextView) v.findViewById(R.id.place);  

 date.setText("Date " +item.date + " "+item.time);
   place.setText("Place "+ item.place);
  // } else {
   // View v = Inflater.inflate(R.layout.row2, parent, false);
   // TextView ddate = (TextView) v.findViewById(R.id.ddate);
   // TextView dpower = (TextView) v.findViewById(R.id.dpower); 
   // TextView dwave = (TextView) v.findViewById(R.id.dwave); 
//
  //  ddate.setText("Date " +item.date + " "+item.time);
  //  dwave.setText("Wave "+ item.wave);
  //  dpower.setText("Power "+ item.power);    
   //}
        
   if(checkMap.get(position) != null) {
    check.setChecked(true);
   } else {
    check.setChecked(false);
   }
      
   check.setOnCheckedChangeListener(new OnCheckedChangeListener() {    
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
     if(isChecked) {
      checkMap.put(position, position);
     } else {
      checkMap.remove(position);
     }
    }
   });
      
   body.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
     Intent i = new Intent(SaveList.this, DetailActivity.class);
     i.putParcelableArrayListExtra("list", mpmList);
     i.putExtra("position", position);
     startActivity(i);
    }
   });   
   return v;
  }
 }

 

a클래스에서 버튼을 눌러 디비를 저장하고

b클래스에서 다른 버튼을 눌러 디비를 저장합니다.

이 2개의 디비는 같은 테이블을 쓰고 있습니다.

그래서 어느 버튼에서 눌렸는지 구분해야 해서 전에 문의한 결과 디비에 flag를 0.1로 저장해서 구분하라고 해서

디비 테이블에 flag추가했습니다,

 

이제 커스텀 리스트뷰에 이 디비들을 뿌려야는데요

그래서 각 디비당 row를 각각 준비했습니다.(roiw, row2)

 

inflate 시켜서 flag로 구분지어 이제 리스트뷰에 뿌려야는데 inflate 분기를 못시키겠습니다.

if(item,flag.equals("0")) {

} else {

}

 

if문 안에 위 소스중 어디까지 들어가야할지 감이 안오네여

return v라 전체소스를 다 if문 안에 넣어보기도 했는데

잘 안되네요;;

 

 

방안 좀 제시해주세요 ..

답답해요 ㅋ

 

앤드류이드 (6,190 포인트) 님이 2013년 7월 10일 질문

1개의 답변

0 추천
 
채택된 답변
View v = null;
   
if (item.flag.equals("0")) {
v = Inflater.inflate(R.layout.row, parent, false);
ImageView icon = (ImageView)v.findViewById(R.id.phone);
body = (LinearLayout) v.findViewById(R.id.body);
check = (CheckBox) v.findViewById(R.id.check);
TextView date = (TextView) v.findViewById(R.id.date);
TextView place = (TextView) v.findViewById(R.id.place);
 
date.setText("Date " +item.date + " "+item.time);
place.setText("Place "+ item.place);
 
} else {
v = Inflater.inflate(R.layout.row2, parent, false);
ImageView icon = (ImageView)v.findViewById(R.id.device);
TextView ddate = (TextView) v.findViewById(R.id.ddate);
TextView dpower = (TextView) v.findViewById(R.id.dpower); 
TextView dwave = (TextView) v.findViewById(R.id.dwave); 
 
ddate.setText("Date " +item.date + " "+item.time);
dwave.setText("Wave "+ item.wave);
dpower.setText("Power "+ item.power);   
}
Gradler (109,780 포인트) 님이 2013년 7월 10일 답변
앤드류이드님이 2013년 7월 10일 채택됨
좀 더 제가 수정해야지만 진짜 감사합니다. 이것때문에 몇날 며칠을 밤샜네여 ㅠㅠ
...