Привет, я знаю, что этот вопрос появился здесь, но ответы мне не помогли. Итак, у меня есть активность со списком, ограниченным ArrayListAdapter для моего класса ZamowieniePoz.Android ListView And EditText
public class ZamowieniePoz {
private int _idZamowienie;
private String _plu;
private String _nazwa;
private String _ilosc;
private String _jm;
private String _uwagi;
private String _dataSync;
private int _isSync; }
Это мой ListView definitione:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical">
<ListView
android:id="@+id/listView"
android:scrollbars="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_alignParentTop="true" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/listView" >
<Button
android:id="@+id/btnWyslij"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="WYŚLIJ ZAMÓWIENIE" />
<Button
android:id="@+id/btnPowrotZamowienieAdd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="POWRÓT" />
</LinearLayout>
Это ListView строка:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/txtPlu"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/txtIlosc"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/txtPlu"
android:layout_marginLeft="25sp"
android:lines="1"
android:inputType="numberDecimal" />
</RelativeLayout>
Это ArrayListAdapter:
public class ZamowieniePozArrayAdapter extends ArrayAdapter<ZamowieniePoz> {
Context context;
int layoutResourceId;
ArrayList<ZamowieniePoz> data=null;
public ZamowieniePozArrayAdapter(Context context, int layoutResourceId, ArrayList<ZamowieniePoz> data) {
super(context, layoutResourceId, data);
this.layoutResourceId=layoutResourceId;
this.context=context;
this.data = data;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
ZamowienieHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row=inflater.inflate(layoutResourceId, parent, false);
holder = new ZamowienieHolder();
holder.txtPlu = (TextView)row.findViewById(R.id.txtPlu);
holder.txtIlosc=(EditText)row.findViewById(R.id.txtIlosc);
holder.txtIlosc.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) {
data.get(position).setIlosc(s.toString());
}
});
row.setTag(holder);
}
else{
holder = (ZamowienieHolder)row.getTag();
}
ZamowieniePoz zamowieniePoz = data.get(position);
holder.txtPlu.setText(zamowieniePoz.getPlu());
holder.txtIlosc.setText(zamowieniePoz.getIlosc());
return row;
}
static class ZamowienieHolder {
TextView txtPlu;
EditText txtIlosc;
}
}
Это, как я связала адаптер к ListView:
final DbHandler db = new DbHandler(ZamowienieAddActivity.this);
listView = (ListView) findViewById(R.id.listView);
arrayZamowieniePoz = db.getAllZamowienie();
arrayAdapterZamowieniePoz = new ZamowieniePozArrayAdapter(this, R.layout.zamowienie_add_list_items, arrayZamowieniePoz);
listView.setAdapter(arrayAdapterZamowieniePoz);
Так это он. Проблема в том, что первая строка listView дублирует последнюю строку. Я думаю, что что-то не так с этой строкой кода data.get (position) .setIlosc (s.toString()); в getView в afterTextChange.
Пожалуйста, помогите мне. Я не знаю, что не так. Спасибо.
Я добавил TextWatcher и сделать removeTextChangeListener перед тем addTextChangeListener и я doensn't изменить что-либо. Можете ли вы опубликовать пример, как сделать это по-своему. Может быть, я делаю что-то неправильно. THX – silaros88
@ user2440158 Отредактировано мое сообщение с примером – nicopico
My God. Никопико вы сделали мой день. ОНО РАБОТАЕТ !!! – silaros88