Ho una voce di elenco con EditText
al suo interno, non so quanti oggetti ci saranno. Ho un problema quando inserisco del testo in EditText
, quindi scorro verso il basso fino a ListView
, dopo che ho fatto scorrere di nuovo non c'è testo nel mio primo EditText
, o c'è del testo da altro EditText
da ListView
.Android: EditText perde contenuto sullo scorrimento in ListView?
Ho provato TextWatcher
e ho salvato i dati sull'array, ma i problemi sono che la posizione di visualizzazione restituita in ListView
non sempre ha ragione, quindi ho perso alcuni dati dall'array.
Per favore aiuto.
Ecco il mio codice:
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;
}
}
ciò che è diverso in esso? –
hai esaminato il codice che ho suggerito? contiene un oggetto HashMap there.go prima attraverso il codice! – Hiral
il problema che devo affrontare è quando digiti un valore in 1st edittext e scendo verso la lista, il valore in 1st edittext è mostrato in qualche altra finestra di edittext. posso dare una soluzione per questo problema con questo problema negli ultimi tre giorni. –