2014-06-10 54 views
0

我與ArrayList中爲groupItem和ArrayList的ExpandableListView爲childItem:的ArrayList <Object>到ArrayList的<String>

public void setGroupData() { 
    groupItem.add("TechNology"); 
    groupItem.add("Mobile"); 
    groupItem.add("Manufacturer"); 
    groupItem.add("Extras"); 

} 

ArrayList<String> groupItem = new ArrayList<String>(); 
ArrayList<Object> childItem = new ArrayList<Object>(); 

public void setChildGroupData() { 

    /** 
    * Add Data For TecthNology 
    */ 
    ArrayList<String> child = new ArrayList<String>(); 
    child.add("Java"); 
    child.add("Drupal"); 
    child.add(".Net Framework"); 
    child.add("PHP"); 
    childItem.add(child); 

    /** 
    * Add Data For Mobile 
    */ 
    child = new ArrayList<String>(); 
    child.add("Android"); 
    child.add("Window Mobile"); 
    child.add("iPHone"); 
    child.add("Blackberry"); 
    childItem.add(child); 
    /** 
    * Add Data For Manufacture 
    */ 
    child = new ArrayList<String>(); 
    child.add("HTC"); 
    child.add("Apple"); 
    child.add("Samsung"); 
    child.add("Nokia"); 
    childItem.add(child); 
    /** 
    * Add Data For Extras 
    */ 
    child = new ArrayList<String>(); 
    child.add("Contact Us"); 
    child.add("About Us"); 
    child.add("Location"); 
    child.add("Root Cause"); 
    childItem.add(child);  

} 

我想要的if語句時,選擇一個孩子來觸發一個動作。然而childItem是一個對象,如果我把它這個樣子,沒有任何反應,當我按下「Java」的孩子:

if(childItem.get(childPosition).toString().equals("Java")){ 

     iv.setImageResource(R.drawable.pic);  
} 

當我試圖用groupItem這是它的工作一個字符串,但不是我想要的方式(不要緊,哪個項目我按內組「TechNology」它將工作)

if(groupItem.get(groupPosition).equals("TechNology")){ 

     iv.setImageResource(R.drawable.pic); 
} 

我做錯了什麼,我該如何解決它?

回答

0

childItem是數組列表的數組列表,所以toString爲數組列表調用toString。更恰當地說,你可以聲明childItem爲ArrayList<ArrayList<String>>對象。

1
ArrayList<Object> obj_array = new ArrayList<Object>(); 
//set this ArrayList ... 
ArrayList<String> str_array = new ArrayList<String>(); 
for (int i = 0; i < obj_array.size(); i++) 
{ 
    str_array.add((String)obj_array.get(i)); 
} 
+0

我不明白你在建議什麼:將所有元素添加到同一級別? –

+1

它如何工作?他將得到一個ClassCastException。你得到的childItem是一個列表不是一個字符串 –

+0

這段代碼:如何將ArrayList 複製到ArrayList 。只需回答「ArrayList to ArrayList 」 –

0

你的問題是childItem爲String對象的ArrayList的ArrayList(如果你想List<List<String>>),所以你if條件將始終返回false,因爲你是一個String對象進行比較的ArrayList。

爲了解決它,你應該得到相應的ArrayList<String>並檢查String存儲在其中的實例。

相關問題