繁体   English   中英

数组列表 <Object> 到ArrayList <String>

[英]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实例。

转换 ArrayList<object> 串起来<div id="text_translate"><p>嗨,我正在尝试练习 java,我才刚刚开始。 为了练习,我正在尝试构建一个简单的扑克游戏,但遇到了卡片数组列表,我正在尝试将其打印出来,但只有控制台的地址是 output。 自然我尝试使用.toString 方法并创建我自己的toString 方法来尝试检查数组列表是否输入正确。 Bellow 是我的卡片 class 和 Arraylist{Card}Deck。 贝娄是我的代码</p><pre>package poker; import java.util.ArrayList; public class Card { private String _suit; private int _cardNum; public Card(int cardNum, String suit) { _suit = suit; _cardNum = cardNum; } public String toString() { return _suit +_cardNum; } static ArrayList&lt;`enter code here`Card&gt; Deck = new ArrayList&lt;Card&gt;() {{ add(new Card(0,"Hearts")); add(new Card(1,"Hearts")); add(new Card(1,"Hearts")); add(new Card(2,"Hearts")); add(new Card(3,"Hearts")); add(new Card(4,"Hearts")); add(new Card(5,"Hearts")); add(new Card(6,"Hearts")); add(new Card(7,"Hearts")); add(new Card(8,"Hearts")); add(new Card(9,"Hearts")); add(new Card(10,"Hearts")); add(new Card(11,"Hearts")); add(new Card(12,"Hearts")); add(new Card(13,"Hearts")); add(new Card(0,"Spades")); add(new Card(1,"Spades")); add(new Card(2,"Spades")); add(new Card(3,"Spades")); add(new Card(4,"Spades")); add(new Card(5,"Spades")); add(new Card(6,"Spades")); add(new Card(7,"Spades")); add(new Card(8,"Spades")); add(new Card(9,"Spades")); add(new Card(10,"Spades")); add(new Card(11,"Spades")); add(new Card(12,"Spades")); add(new Card(13,"Spades")); add(new Card(0,"Clubs")); add(new Card(1,"Clubs")); add(new Card(2,"Clubs")); add(new Card(3,"Clubs")); add(new Card(4,"Clubs")); add(new Card(5,"Clubs")); add(new Card(6,"Clubs")); add(new Card(7,"Clubs")); add(new Card(8,"Clubs")); add(new Card(9,"Clubs")); add(new Card(10,"Clubs")); add(new Card(11,"Clubs")); add(new Card(12,"Clubs")); add(new Card(13,"Clubs")); add(new Card(0,"Diamonds")); add(new Card(1,"Diamonds")); add(new Card(2,"Diamonds")); add(new Card(3,"Diamonds")); add(new Card(4,"Diamonds")); add(new Card(5,"Diamonds")); add(new Card(6,"Diamonds")); add(new Card(7,"Diamonds")); add(new Card(8,"Diamonds")); add(new Card(9,"Diamonds")); add(new Card(10,"Diamonds")); add(new Card(11,"Diamonds")); add(new Card(12,"Diamonds")); add(new Card(13,"Diamonds")); }}; }</pre><p> 和我的 MainApp</p><pre> package poker; import java.util.Random; import static java.lang.System.out; public class MainApp { public static void main(String[] args) { for(int i = 0;i &lt;Card.Deck.size();i++) { out.println(Card.toString()); } } }</pre><p> 在打印行中是我的问题发生的地方。 如何将 arraylist 从 class 类型转换为用于输出的字符串? 提前致谢!</p></div></object>

[英]Convert ArrayList<Object> to string

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 比较对象ArrayList和String ArrayList 转换ArrayList <String> 到ArrayList <Object> 数组列表 <String> 对象分配 arraylist:将 object 与字符串进行比较 将对象强制转换为ArrayList <String> 转换 ArrayList<object> 串起来<div id="text_translate"><p>嗨,我正在尝试练习 java,我才刚刚开始。 为了练习,我正在尝试构建一个简单的扑克游戏,但遇到了卡片数组列表,我正在尝试将其打印出来,但只有控制台的地址是 output。 自然我尝试使用.toString 方法并创建我自己的toString 方法来尝试检查数组列表是否输入正确。 Bellow 是我的卡片 class 和 Arraylist{Card}Deck。 贝娄是我的代码</p><pre>package poker; import java.util.ArrayList; public class Card { private String _suit; private int _cardNum; public Card(int cardNum, String suit) { _suit = suit; _cardNum = cardNum; } public String toString() { return _suit +_cardNum; } static ArrayList&lt;`enter code here`Card&gt; Deck = new ArrayList&lt;Card&gt;() {{ add(new Card(0,"Hearts")); add(new Card(1,"Hearts")); add(new Card(1,"Hearts")); add(new Card(2,"Hearts")); add(new Card(3,"Hearts")); add(new Card(4,"Hearts")); add(new Card(5,"Hearts")); add(new Card(6,"Hearts")); add(new Card(7,"Hearts")); add(new Card(8,"Hearts")); add(new Card(9,"Hearts")); add(new Card(10,"Hearts")); add(new Card(11,"Hearts")); add(new Card(12,"Hearts")); add(new Card(13,"Hearts")); add(new Card(0,"Spades")); add(new Card(1,"Spades")); add(new Card(2,"Spades")); add(new Card(3,"Spades")); add(new Card(4,"Spades")); add(new Card(5,"Spades")); add(new Card(6,"Spades")); add(new Card(7,"Spades")); add(new Card(8,"Spades")); add(new Card(9,"Spades")); add(new Card(10,"Spades")); add(new Card(11,"Spades")); add(new Card(12,"Spades")); add(new Card(13,"Spades")); add(new Card(0,"Clubs")); add(new Card(1,"Clubs")); add(new Card(2,"Clubs")); add(new Card(3,"Clubs")); add(new Card(4,"Clubs")); add(new Card(5,"Clubs")); add(new Card(6,"Clubs")); add(new Card(7,"Clubs")); add(new Card(8,"Clubs")); add(new Card(9,"Clubs")); add(new Card(10,"Clubs")); add(new Card(11,"Clubs")); add(new Card(12,"Clubs")); add(new Card(13,"Clubs")); add(new Card(0,"Diamonds")); add(new Card(1,"Diamonds")); add(new Card(2,"Diamonds")); add(new Card(3,"Diamonds")); add(new Card(4,"Diamonds")); add(new Card(5,"Diamonds")); add(new Card(6,"Diamonds")); add(new Card(7,"Diamonds")); add(new Card(8,"Diamonds")); add(new Card(9,"Diamonds")); add(new Card(10,"Diamonds")); add(new Card(11,"Diamonds")); add(new Card(12,"Diamonds")); add(new Card(13,"Diamonds")); }}; }</pre><p> 和我的 MainApp</p><pre> package poker; import java.util.Random; import static java.lang.System.out; public class MainApp { public static void main(String[] args) { for(int i = 0;i &lt;Card.Deck.size();i++) { out.println(Card.toString()); } } }</pre><p> 在打印行中是我的问题发生的地方。 如何将 arraylist 从 class 类型转换为用于输出的字符串? 提前致谢!</p></div></object> 将String对象添加到ArrayList ArrayList和String [] AND Object [] 如何填充ArrayList <String> 从ArrayList <Object> 放置一个 ArrayList<String> 进入一个 ArrayList<Custom Object>
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM