2016-10-22 12 views
0

Я заполняю список, используя этот код фрагмента, но вам нужно проверить, есть ли значение, которое должно быть взято из textviw, в списке, кто-нибудь знает хорошую практику для этой проблемы?избегайте дублирования списка.

tv.setText(count+" | "+"id: "+uid+" Sak: "+Sak+" atqa: "+atqa); 
    count++; 
    int k=sp.getCount(); 
    String a1[]=new String[k+1]; 
    for(int i=0;i<k;i++) 
     a1[i]=sp.getItemAtPosition(i).toString(); 
    a1[k]=tv.getText().toString(); 
    ArrayAdapter<String> ats=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a1); 



    sp.setAdapter(ats); 

ответ

0

Вам не нужно использовать AdapterView # getItemAtPosition (INT), чтобы получить данные, связанные с элементом строки, так как сам ArrayAdapter позволяет вам #getItem (INT) и #getCount().

Итак, чтобы получить полный массив, поддерживающий список. У:

String newItem = "Item to insert"; 
for(int i=0; i<adapter.getCount(); i++){ 
    String foo = (Object) adapter.getItem(i); 
    if (foo.equals(newItem)){ 
    return; // do not add 
    } 
} 
adapter.add(newItem); // add it 
+0

не работал для меня, потому что я забыл упомянуть, я работаю внутри newintent обработчика, так что каждый раз когда НФК тег захвачена получил его идентификатор добавляется в массив, так что здесь окончательный рабочий код для меня – joghm

0
int k=sp.getCount(); 
    String a1[]=new String[k+1]; 

     for (int i = 0; i < k; i++) { 
      a1[i] = sp.getItemAtPosition(i).toString(); 
      Log.e("test", "test" + a1[i].toString()); 
      Log.e("test", "orig" + " | " + "id: " + uid + " Sak: " + Sak + " atqa: " + atqa); 

      String foo = (" | " + "id: " + uid + " Sak: " + Sak + " atqa: " + atqa); 
      if (foo.equals(a1[i].toString())) { 
       Log.e("eqal", "equal"); 
       return; 


      } 
     } 

    a1[k]=tv.getText().toString(); 
    ArrayAdapter<String> ats=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a1); 
    Log.e("test","test"+ats.getItem(k)); 


    sp.setAdapter(ats); 
Смежные вопросы