[英]ArrayList<Object> to ArrayList<String>
我做了一個ExpandableListView,其中ArrayList作為groupItem,而ArrayList作為childItem:
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);
}
我在做什么錯,我該如何解決?
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));
}
childItem是一個數組列表的數組列表,因此toString正在為數組列表調用toString。 更正確地,您可以將childItem聲明為ArrayList<ArrayList<String>>
對象。
您的問題是childItem
是String對象的ArrayList的ArrayList(如果需要,則為List<List<String>>
),因此您的if
條件將始終返回false,因為您正在將ArrayList與String對象進行比較。
為了修復它,您應該獲取相應的ArrayList<String>
並檢查其中存儲的String
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.