簡體   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