2014-06-10 51 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存储在其中的实例。

相关问题