Tôi có mục danh sách với EditText
trong đó, tôi không biết có bao nhiêu mục sẽ có. Tôi gặp sự cố khi nhập một số văn bản trong EditText
và sau đó cuộn xuống ListView
, sau khi tôi cuộn lên lần nữa, không có văn bản nào trong số EditText
đầu tiên của tôi hoặc có một số văn bản từ EditText
từ ListView
.Android: EditText mất nội dung khi cuộn trong ListView?
Tôi đã thử TextWatcher
và lưu dữ liệu vào mảng, nhưng vấn đề là vị trí được trả về trong ListView
không phải lúc nào cũng đúng, vì vậy tôi đã mất một số dữ liệu từ mảng.
Vui lòng trợ giúp.
Đây là mã của tôi:
public class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public String[] Current;
ArrayList<String> MeterName, PreviousReading, Current_Reading;
JSONArray getArray_Meter_Reading;
public EfficientAdapter(Context context, JSONArray getArray_Meter_Reading) {
mInflater = LayoutInflater.from(context);
this.getArray_Meter_Reading = getArray_Meter_Reading;
MeterName = new ArrayList<String>();
PreviousReading = new ArrayList<String>();
for (int i = 0; i < getArray_Meter_Reading.length(); i++) {
try {
String Meter_Name = getArray_Meter_Reading.getJSONObject(i)
.getString("MeterName").toString();
String previous_Meter_Reading = getArray_Meter_Reading
.getJSONObject(i).getString("PrevMeterReading")
.toString();
MeterName.add(Meter_Name);
PreviousReading.add(previous_Meter_Reading);
// Meter[i]=MeterName.get(i);
// Previous[i]=PreviousReading.get(i);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public int getCount() {
return getArray_Meter_Reading.length();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.meter_reading_list, null);
holder = new ViewHolder();
holder.adp_MeterName = (TextView) convertView
.findViewById(R.id.txt_Meter_Name);
holder.adp_Previous = (TextView) convertView
.findViewById(R.id.txt_Previous);
holder.adp_Current = (EditText) convertView
.findViewById(R.id.ed_Current);
holder.adp_Current.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
Current[holder.ref] = s.toString();
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.ref = position;
holder.adp_MeterName.setText(MeterName.get(position));
holder.adp_Previous.setText(PreviousReading.get(position));
// holder.adp_Current.setHint(MeterName.get(position));
// holder.adp_Current.setText(PreviousReading.get(position));
return convertView;
}
class ViewHolder {
TextView adp_MeterName, adp_Previous;
EditText adp_Current;
int ref;
}
}
gì là khác nhau trong đó? –
bạn đã xem mã tôi đề xuất chưa? nó chứa một đối tượng HashMap ở đó. Xem qua mã đầu tiên! – Hiral
Tôi gặp vấn đề gì khi nhập một số giá trị trong edittext thứ nhất và tôi cuộn xuống danh sách, giá trị trong edittext thứ nhất được hiển thị là một số hộp văn bản khác. plz có thể cung cấp cho các giải pháp cho rằng im phải đối mặt với vấn đề này từ ba ngày qua. –