안녕하세요.
동적으로 edit text 리스트 뷰를 만들었는데 갯수가 많아지니까 갑자기 중복 현상이 일어납니다. 위쪽 뷰에서 editText에 값을 입력하고 스크롤을 내리면 아까 적었던 텍스트가 입력된 채로 밑에서 새로운 뷰가 나옵니다..
adapter에서 getView를 호출하면서 이미 만들어뒀던 뷰를 계속 재활용해서 일어나는 현상 같은데, 어떻게 해야 editText 리스트를 유지하면서 중복이 되지않게 인플레이트 할 수 있을까요?
@Override
public View getView(int i, View convertView, ViewGroup parent) {
final int pos = i;
final Context context = parent.getContext();
View view = convertView;
if (view == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.word_add_listview_item,parent,false);
((EditText) view.findViewById(R.id.add_word_editText)).setPrivateImeOptions("defaultInputmode=english;");
((EditText) view.findViewById(R.id.add_meaning_editText)).setPrivateImeOptions("defaultInputmode=korean;");
editList.add(view);
}
return view;
}
public void addEditText()
{
AddWGListViewItem newItem = new AddWGListViewItem();
listView.add(newItem);
}
public View getEditText(int index)
{
return editList.get(index);
}
private ArrayList<AddWGListViewItem> listView ;
private ArrayList<View> editList = new ArrayList<>();