2016-09-20 2 views
-3

мне нужно добавить все элементы в ArrayListДобавить только последний элемент в ArrayList дважды

Logcat:

E/BUSINESS_STR: fuflfilled 
E/itemsaArrayList: [[email protected], [email protected]] 

Код:

if(BUSINESS_STR != null){ 

    Log.e("BUSINESS_STR", "" + BUSINESS_STR); 

    CommonListItems commonListItems = new CommonListItems(); 


    for(int i = 0; i <= 1 ; i++) { 
     commonListItems.setName("My Business"); 
     commonListItems.setName("Search Business"); 

     commonListItems.setImage(String.valueOf(R.drawable.business_icon)); 
     commonListItems.setImage(String.valueOf(R.drawable.search_business_icon)); 

     itemsaArrayList.add(commonListItems); 
    } 

    tvTitle.setText("Business"); 
} 

Наконец он добавляя последний пункт "Search Business" дважды. Мне нужно сначала добавить "My Business", а затем "Search Business".

+0

Можете ли вы подробнее? Я не получаю вашу точку – PriyankaChauhan

+0

@pcpriyanka arraylist добавляет последний элемент дважды внутри цикла for.I не получает Мой бизнес. – UserAgr

+0

Почему вы использовали 'for (int i = 0; i <= 1; i ++) {...}' – PriyankaChauhan

ответ

1

Удалить цикл:

commonListItems.setName("My Business"); 
commonListItems.setImage(String.valueOf(R.drawable.business_icon)); 
itemsaArrayList.add(commonListItems); 

commonListItems = new CommonListItems(); 

commonListItems.setName("Search Business"); 
commonListItems.setImage(String.valueOf(R.drawable.search_business_icon)); 
itemsaArrayList.add(commonListItems); 
+0

теперь также добавляет последний элемент поиска Бизнес дважды. предложение. – UserAgr

+0

создать новый CommonListItem перед добавлением поискового бизнеса: commonListItems = new CommonListItems(); – porgo

+0

И не забудьте удалить для цикла – porgo

0

Вы добавляете тот же экземпляр CommonListItems в списке - в два раза. Удалите цикл for и создайте два объекта типа CommonListItems.

CommonListItems commonListItem1 = new CommonListItems(); 
commonListItem1.setName("My Business"); 
commonListItem1.setImage(String.valueOf(R.drawable.business_icon)); 

CommonListItems commonListItem2 = new CommonListItems(); 
commonListItem2.setName("Search Business"); 
commonListItem2.setImage(String.valueOf(R.drawable.search_business_icon)); 

itemsaArrayList.add(commonListItem1); 
itemsaArrayList.add(commonListItem2); 
1

добавить

commonListItems = new CommonListItems(); 

в качестве первого оператора в для цикла. Теперь ваш код будет таким:

if(BUSINESS_STR != null){ 

Log.e("BUSINESS_STR", "" + BUSINESS_STR); 

CommonListItems commonListItems; 


for(int i = 0; i <= 1 ; i++) { 
    commonListItems = new CommonListItems(); 
    if(i==0){ 
     commonListItems.setName("My Business" + i); 
     commonListItems.setImage(String.valueOf(R.drawable.business_icon)); 
    } else { 
     commonListItems.setName("Search Business" + i); 
     commonListItems.setImage(String.valueOf(R.drawable.search_business_icon)); 
    } 

    itemsaArrayList.add(commonListItems); 
} 

tvTitle.setText("Business"); 
} 
+0

он не работает, добавив только последний элемент дважды – UserAgr

+0

@UserAgr вы не меняете значения для элемента arraylist внутри цикла, поэтому вы можете видеть тот же элемент дважды. –

+0

Я изменил свой ответ –