Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid :EditText loses content on scroll in ListView?
    primarykey
    data
    text
    <p>I have list item with <code>EditText</code> in it, I don't know how many items there will be. I have a problem when I enter some text in <code>EditText</code>, and then scroll down a <code>ListView</code>, after I've scroll up again there is no text in my first <code>EditText</code>, or there is some text from other <code>EditText</code> from <code>ListView</code>.</p> <p>I've tried <code>TextWatcher</code>, and saving data to array, but problems is that returned position of view in <code>ListView</code> isn't always right, so I lost some data from array.</p> <p>Please help.</p> <p>Here is my code:</p> <pre><code>public class EfficientAdapter extends BaseAdapter { private LayoutInflater mInflater; public String[] Current; ArrayList&lt;String&gt; 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&lt;String&gt;(); PreviousReading = new ArrayList&lt;String&gt;(); for (int i = 0; i &lt; 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; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload