2016-09-20 121 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循环中添加了两次最后一项。我没有收到我的业务。 – UserAgr

+0

为什么你使用'for(int i = 0; i <= 1; i ++){...}' – PriyankaChauhan

回答

1

for循环删除:

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

现在它也是添加最后一个项目搜索业务twice.any建议。 – UserAgr

+0

在添加搜索业务之前创建一个新的CommonListItem:commonListItems = new CommonListItems(); – porgo

+0

并记住删除for循环 – 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项目for循环这就是为什么你能够看到相同的项目两次。 –

+0

我改变了我的回答 –

相关问题