Когда я получаю результат поиска из таблицы, результаты отображаются дважды.ListView Duplicates Android
Результаты "A/A", "аа/аа" и "AB/а" все правильно и должны быть там. Однако я не хочу дублировать значения в третьей записи списка.
Любые идеи, почему это происходит?
Главный экран
// Set up search array
for(int i = 0; i < isbn.length; i++)
{
searchArray.add(new InventoryItem(isbn[i], InventoryAdapter.getTitleAndAuthorByISBN(isbn[i])));
}
Toast.makeText(getApplicationContext(), "searchArray.size()="+searchArray.size(), Toast.LENGTH_LONG).show();
// add data in custom adapter
adapter = new CustomAdapter(this, R.layout.list, searchArray);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
CustomAdapter
public class CustomAdapter extends ArrayAdapter<InventoryItem> {
Context context;
int layoutResourceId;
LinearLayout linearMain;
ArrayList<InventoryItem> data = new ArrayList<InventoryItem>();
public CustomAdapter(Context context, int layoutResourceId,
ArrayList<InventoryItem> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
linearMain = (LinearLayout) row.findViewById(R.id.lineraMain);
}
InventoryItem myItem = data.get(position);
TextView label = new TextView(context);
label.setText(myItem.details);
linearMain.addView(label);
return row;
}
}
работает прекрасно. Благодарю. – erad
Как это может работать? нет 'convertView = row' или' convertView.setTag (row) '. – Siddharth
Он работает, потому что строка «Вид» используется только как указатель - convertView и строка в конечном итоге ссылаются на один и тот же объект. Вы можете честно вывести View row = null, инструкцию else и заменить все переменные «row» на convertView, и он будет работать одинаково. Я опубликовал этот ответ некоторое время назад, и выше это то, как я решил сделать это в то время. Кроме того, в приведенном выше примере нет необходимости устанавливать тег в представлении. – Submersed