0

Если я наберу «Hello» в своем edittext в действии 1, он добавит «Hello» к списку в активности 2 как первую запись (у которой нет ошибки). Кроме того, если я наберу «Яблоко» в качестве моей второй записи, я изменю первую запись «Hello» на «Apple» и добавлю новую вторую запись «Apple» ... заставив обе записи стать «Apple» и «Apple», ... Есть предположения?Android ListView Дублирует записи

Акт 2 @Override защищен недействительным OnCreate (Пачка savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_argue_list);

ListView txtlist = (ListView)findViewById(android.R.id.list); 


    Bundle bun = getIntent().getExtras(); 
    Lrg = bun.getString("Jenny"); 
    Med = bun.getString("Forest"); 
    Med2 = bun.getString("Gump"); 

     KoreyzAdapter add = new KoreyzAdapter(); 
     txtlist.setAdapter(add); 
     list.add(0, Lrg); 
     add.notifyDataSetChanged(); 
     setListAdapter(add); 
} 
class KoreyzAdapter extends ArrayAdapter<String>{ 

     public KoreyzAdapter() { 
      super(ArgueListActivity.this, android.R.layout.simple_list_item_1, list); 
    } 
     class ViewHolder{ 
      TextView who; 
      TextView sex; 
      TextView cat; 
      ImageView pic; 

      ViewHolder(View v){ 
       who = (TextView) v.findViewById(R.id.inputLrgtxt); 
       sex = (TextView) v.findViewById(R.id.whoMedtxt); 
       cat = (TextView) v.findViewById(R.id.stupidMedtxt); 
       pic = (ImageView)v.findViewById(R.id.sexpic); 
      } 

     } 
       public View getView(int position, View convertView, ViewGroup parent) { 
        View row = convertView; 
        ViewHolder holder = null; 
        if(row == null){ 

         LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         row = inflator.inflate(R.layout.list_item, parent, false); 
         holder = new ViewHolder(row); 
         row.setTag(holder); 

        }else{ 
         holder = (ViewHolder)row.getTag(); 
        } 

         holder.who.setText(Lrg); 
         holder.sex.setText(Med); 
         holder.cat.setText(Med2); 

         holder.pic.setImageResource(R.drawable.maleandfemale); 

         return row; 
        } 

ответ

0

Вам необходимо очистить данные адаптера. Перед загрузкой listView из адаптера сделайте список в поле onCreate() вашей деятельности. Это просто добавление старых данных. Вот почему он показывает два раза. Надеюсь, это сработает.

Используйте это один OnCreate():

list.clear() 
+0

Мы хотим, чтобы в listview сохранялись записи, такие как список приложений в блокноте. По-видимому, стирает запись. Возможно, я помещал его в неправильное место, в настоящее время его право после setContentView (R.layout.activity_argue_list); – LimpLimp

+0

Вы можете использовать ** list.clear() ** после установки адаптера. – bGorle

+0

нет пойдите. после добавления list.clear() – LimpLimp

0

Проверить this ссылку. Это может помочь вам.

Даже я столкнулся с той же проблемой, мне потребовалось 2 дня, чтобы избавиться от этой проблемы.

Надеюсь, это помогло вам. :)

Смежные вопросы