@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
// 创建新的ViewHolder
convertView = mInflater.inflate(R.layout.item_list, null);
holder = new ViewHolder();
holder.textView = (TextView) convertView.findViewById(R.id.text_view);
holder.editText = (EditText) convertView.findViewById(R.id.edit_text);
convertView.setTag(holder);
} else {
// 复用ViewHolder
holder = (ViewHolder) convertView.getTag();
}
// 先清除旧数据
holder.textView.setText("");
holder.editText.setText("");
// 绑定新数据
holder.textView.setText(data.get(position));
holder.editText.setText(holder.editTextContent);
// 记录EditText中的文本内容
holder.editTextContent = holder.editText.getText().toString();
//添加监听器,记录EditText中的文本内容
holder.editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
holder.editTextContent = s.toString();
}
@Override
public void afterTextChanged(Editable s) {
}
});
return convertView;
}
static class ViewHolder {
TextView textView;
EditText editText;
String editTextContent;
}
viewhold復用的坑
于 2023-06-08 09:36:03 首次发布