Я пытаюсь создать listview с каждым элементом списка, и их макеты создаются кодом. Первоначальные макеты выглядят отлично, но когда я прокручиваюсь и все, элементы компоновки, добавленные программно, снова добавляются, что приводит к дублированию элементов. Как я могу решить эту проблему?Элементы, добавляемые к элементу списка несколько раз. Как это исправить?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
MyHolder holder;
if (v == null) {
LayoutInflater li = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.empty_item, null);
holder = new MyHolder(v);
v.setTag(holder);
} else {
holder = (MyHolder) v.getTag();
}
TextView textView = new TextView(activity);
textView.setText(items.get(position).getItems().get(i).getText());
textView.setLayoutParams(params);
holder.linearLayout.addView(textView);
return v;
}
class MyHolder{
public TextView tvTitle;
public LinearLayout linearLayout;
public CardView cardView;
public MyHolder(View base){
tvTitle = (TextView)base.findViewById(R.id.tvTitle);
cardView = (CardView)base.findViewById(R.id.card_view2);
linearLayout = (LinearLayout)base.findViewById(R.id.linearLayoutCard);
}
}
Зачем добавлять время просмотра текста, пожалуйста, перейдите по https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html – Pavan
Мне нужны динамические макеты в моем приложение. Например, если сервер говорит, что нам нужны 3 кнопки и текстовое представление, я создаю это время выполнения. – user3179249
, в этом случае ваш элемент будет добавлен при изменении состояния списка, например, прокрутке и уведомлении, тогда он будет случайным образом добавлять виды, вы можете добавить holder.linearLayout.removeallview(); перед добавлением вида – Pavan