要在Android Studio中使ListView中的EditText保留更改后的值,可以通过以下步骤和代码示例来实现:
public class CustomAdapter extends BaseAdapter {
private Context context;
private ArrayList dataList;
private HashMap editTextValues;
public CustomAdapter(Context context, ArrayList dataList) {
this.context = context;
this.dataList = dataList;
this.editTextValues = new HashMap<>();
}
// ...
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// ...
final EditText editText = convertView.findViewById(R.id.editText);
editText.setText(dataList.get(position));
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
editTextValues.put(position, charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
}
});
// ...
}
public String getEditTextValue(int position) {
return editTextValues.get(position);
}
CustomAdapter adapter = new CustomAdapter(this, dataList);
listView.setAdapter(adapter);
String editTextValue = adapter.getEditTextValue(position);
这样,每当用户更改EditText的值时,都会将其保存在HashMap中,并且可以通过适配器的方法获取到这些值。