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

리스트뷰 안에 있는 Edittext의 값을 못가져 옵니다 ㅠㅠ

0 추천
커스텀 리스트뷰를 만들고 있는데

 

Raw에 에디트 택스트와 버튼이 있고

 

에디트 텍스트에 입력된 값을 해당 Raw에 함께 있는 버튼을 눌렀을떼 출력이 되게끔 만들고 잇습니다

 

굉장히 간단할거라 생각했는데

 

에디트 텍스트에 position 값을 넣을 곳이 없더군요;;;

 

그래서 어떻게 구별을 해서 값을 가져와야 할지도 잘 모르겟고...

 

구글링을 통해 해결을 해봤지만, 첫번째 값만 출력되는 상태가 지금입니다;;;

 

커스텀 리스트뷰에 raw에 edittext와 버튼이 같이 있으며

 

에디트 텍스트에 입력되는 값을 버튼으로 출력하려면 어떻게 해야 하나요?

 

 

 

 

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  final int pos = position;
  final Context context = parent.getContext();
 

  
  Button commit = null;
  TextView num = null,nameView2 = null,phnumView2 = null;
  //EditText editname = null;

 
  
  if ( convertView == null ) {
   LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   convertView = inflater.inflate(R.layout.raw_editlist, parent, false);
  
   nameView2 = (TextView)convertView.findViewById(R.id.chname);
   phnumView2 = (TextView)convertView.findViewById(R.id.chphnum);
   commit = (Button)convertView.findViewById(R.id.editcommit);
   num = (TextView)convertView.findViewById(R.id.chnum);
   editname = (EditText)convertView.findViewById(R.id.edtname);
   
   
   
   holder = new CustomHolder2();
   holder.h_nameView2  = nameView2;
   holder.h_phnumView2 = phnumView2;
   holder.h_editname = editname;
   holder.h_num = num;
   holder.h_commit = commit;
   convertView.setTag(holder);
  }else{
   holder  = (CustomHolder2) convertView.getTag();
   num = holder.h_num;
   commit = holder.h_commit;
   nameView2 = holder.h_nameView2;
   phnumView2 = holder.h_phnumView2;
   editname = holder.h_editname;
  }
  
  
  
  nameView2.setText(m_List.get(position));
  phnumView2.setText(m_phList.get(position));
  editname.setId(position);
  
  //getvalue.add(editname.getText().toString());
  
  editnamelist.add(editname);
  for(int i=0; i< getCount(); i ++){
   
   numlist.add(String.valueOf(i));
   
   
  }
  num.setText(numlist.get(position)+ " : ");
  
  commit.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub

    Log.i("web console","성공" + pos);
    for(int i =0; i< getCount(); i ++){
   Log.i("web console","나와라!: " + editnamelist.get(i).getText().toString());
 
    }
   }
  });
  
  
  pagechk++;

  return convertView;
 }

 

 

소스는 해당 커스텀리스트뷰의 어답터의 getview 부분입니다...
아우아디 (1,900 포인트) 님이 2014년 8월 24일 질문
아우아디님이 2014년 8월 24일 수정
holder 때메 될지 모르겠습니다만.
commit.setTag(editname);
...
public void onClick(View v) {
    EditText editname = (EditText)v.getTag();
    if (editname!= null) {
        editname.setText(...)
    }
...

이렇게 하면 될 듯 하기도 한데. 문제는 holder 객체를 tag에 넣고 있어서 잘 확인 해보시길 바랍니다.
해답은 settag 였군요!! 정말 감사합니다 __) 해결했습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...