2016-06-28 2 views
0

Всякий раз, когда я добавить новый элемент в моей ListView показывает только последний пункт неоднократноListView элемент повторив при добавлении нового элемента

final ArrayList<Map<String, String>> persontList = new ArrayList <Map<String, String>>(); 

    ajout.setOnClickListener(new View.OnClickListener(){ 

     Map<String, String> data; 

     public void onClick(View v) { 
      String nom = etname.getText().toString(); 
      String number = etnumber.getText().toString(); 
      Person p =new Person(nom, number); 
      String strNumber = String.valueOf(p.getPhoneNumber()); 
      data = new HashMap<String, String>(2); 
      data.put("FullName",p.getFullName()); 
      data.put("PhoneNumber",strNumber); 

      persontList.add(data); 
      SimpleAdapter arrayAdapter = new SimpleAdapter(MainActivity.this, persontList, android.R.layout.simple_list_item_2, new String[]{"FullName", "PhoneNumber"}, new int[]{android.R.id.text1, android.R.id.text2}); 
      lvStudent.setAdapter(arrayAdapter); 

     } 
    }); 

я видел эту android ListView Simple Adapter, item repeating, но dosen't похоже на работу для меня

+0

Вы нашли решение? –

ответ

0

Я не уверен, если это непосредственно связано с вашей проблемой, но вы не должны делать:

SimpleAdapter arrayAdapter = new SimpleAdapter(MainActivity.this, persontList, android.R.layout.simple_list_item_2, new String[]{"FullName", "PhoneNumber"}, new int[]{android.R.id.text1, android.R.id.text2}); 
lvStudent.setAdapter(arrayAdapter); 

это не манда но, возможно, вы не хотите создавать простой адаптер каждый раз, когда вы нажимаете «Вид».

Попробуйте создать свой адаптер из этого обратного вызова.

0

Я думаю, это потому, что вы создаете SimpleAdapter каждый раз, когда вы нажимаете «ajout».

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

Например:

final ArrayList<Map<String, String>> persontList = new ArrayList <Map<String, String>>(); 
SimpleAdapter arrayAdapter = new SimpleAdapter(MainActivity.this, persontList, android.R.layout.simple_list_item_2, new String[]{"FullName", "PhoneNumber"}, new int[]{android.R.id.text1, android.R.id.text2}); 

    ajout.setOnClickListener(new View.OnClickListener(){ 

     Map<String, String> data; 

     public void onClick(View v) { 
      String nom = etname.getText().toString(); 
      String number = etnumber.getText().toString(); 
      Person p =new Person(nom, number); 
      String strNumber = String.valueOf(p.getPhoneNumber()); 
      data = new HashMap<String, String>(2); 
      data.put("FullName",p.getFullName()); 
      data.put("PhoneNumber",strNumber); 

      persontList.add(data); 
      arrayAdapter = new SimpleAdapter(MainActivity.this, persontList, android.R.layout.simple_list_item_2, new String[]{nom, number}, new int[]{android.R.id.text1, android.R.id.text2}); 

      lvStudent.setAdapter(arrayAdapter); 
      arrayAdapter.notifyDataSetChanged(); 
     } 


     lvStudent.setAdapter(arrayAdapter); 
    }); 
0

Добавить personlist.clear(); перед тем String nom = etname.getText().toString();