Android : listview with edittext repeats the values on scroll

on Friday, September 26, 2014


This question has been asked frequently ..but nothing seems to work for me.


I have a listview with edittext .. when I scroll the listview value of edittext repeats.


Please suggest !!


code :



public View getView(int position, View view, ViewGroup parent) {

View mView = view; //trying to reuse a recycled view

if (mView == null) {
//The view is not a recycled one: we have to inflate
mView = getActivity().getLayoutInflater().inflate(
getResource(), parent, false);
holder = new ViewHolder();


holder.row = (OEDataRow) moveLinesfinalData.get(position);

holder.eProductName = (TextView) mView.findViewById(R.id.textViewProductNameFinal);
holder.eProductName.setText(holder.row.getString("name").toString());

holder.innerLinearLayout = (LinearLayout) mView
.findViewById(R.id.innerLinearLayout);
holder.editTextProductId = (EditText) holder.innerLinearLayout
.findViewById(R.id.editTextProductId);
holder.eProductSerial = (EditText) holder.innerLinearLayout
.findViewById(R.id.editTextSerialFinal);

holder.BarCode = (Button) holder.innerLinearLayout.findViewById(R.id.buttonBarcode);
holder.editTextProductIdFocus = (EditText) holder.innerLinearLayout
.findViewById(R.id.editTextProductId);

mView.setTag(holder);
} else {
// View recycled !
// no need to inflate
// no need to findViews by id
holder = (ViewHolder) mView.getTag();
}

if(holder.row != null) {
holder.editTextProductId.setText(holder.row.getInt("id").toString());

}

holder.eProductSerial.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
String newSerial = s.toString();

String id = holder.editTextProductIdFocus.getText().toString();
productData.put(id,newSerial);

}
});

Log.d("list", "list productData "+productData);

holder.BarCode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.getId();
}
});


return mView;
}

0 comments:

Post a Comment