2012-08-06 5 views
0

이 코드를 사용하여 목록보기에서 edittext의 값을 가져옵니다.ListView의 텍스트 편집?

 View view = listview.getChildAt(position); 
    EditText text = (EditText)view.findViewById(R.id.myEditBox); 
    String contents = text.getText().toString(); 

그러나 문제는 내가 목록보기, 위치 변경을 스크롤하고 내가 이동하면 내가 다른 result.ie을 얻고 때, 다섯 번째 위치에있는 요소가 정상에 도착하고 위치가 0.Is이되는 것입니다 거기에 어떤 구제 수단이 있니?

답변

0

아직 작성하지 않았다면 목록보기 용 어댑터를 만들어야하며,보기를 설정할 때 어댑터에서 텍스트 워처를 추가하고 텍스트가 활동 또는 프래그먼트로 변경 될 때보고하십시오. 어댑터에

:

edittext.addTextChangedListener(new TextWatcher() { 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, 
         int after) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void afterTextChanged(Editable s) { 
        ((MyActivity) getContext()).textChanged(s.toString()); 

       } 
      }); 

활동

public void textChanged(String s){ 

     //do somthing with the string 
} 

당신이 당신의 텍스트를 편집

+0

그러나 fo를 위치를 추측하지 않아도 그 방법에 나는 것을 결정하는 방법을하는 행의 편집 텍스트 값입니다. – orange

+0

어댑터 getView (int position, View convertView, ViewGroup parent) 메소드를 구현하는 경우 현재 작업중인 항목의 위치를 ​​얻으므로 새 매개 변수를 액티비티의 textChanged 메소드에 쉽게 전달할 수 있습니다. –

+0

감사합니다. 그것은 효과가 있었다. – orange