我需要创建一个动态Listview
,其中已填充已经在" Transaction
"对象,但因为事务的数量可以是变量,首先我需要创建ArrayList
个Transaction
个对象并将其转换为数组以将其传递给Listview适配器。我试图这样做:
ArrayList <Transaction> transaction_data2 = new ArrayList<Transaction>();
transaction_data2.add(new Transaction("0000324455678", "25/05/2014","2.750,25"));
transaction_data2.add(new Transaction("0000324456599", "25/05/2014","12.000,00"));
transaction_data2.add(new Transaction("0000324456621", "26/05/2014","780,00"));
transaction_data2.add(new Transaction("0000324456686", "27/05/2014","658,50"));
transaction_data2.add(new Transaction("0000324456686", "27/05/2014","658,50"));
transaction_data2.add(new Transaction("0000324456699", "27/05/2014","128,00"));
Transaction transaction_data[] = new Transaction[transaction_data2.size()];
transaction_data = (Transaction[]) transaction_data2.toArray();
但我收到了这个错误:
java.lang.ClassCastException:java.lang.Object []无法强制转换为 com.myproyect.Transaction []
有什么建议吗?
提前多多感谢...
答案 0 :(得分:4)
Transaction[] transaction_data = transaction_data2.toArray(new Transaction[transaction_data2.size()]);
请先研究:http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#toArray(T[])
答案 1 :(得分:1)
使用此:
Transaction transaction_data[] = new Transaction[transaction_data2.size()];
transaction_data = (Transaction[]) transaction_data2.toArray(transaction_data);
没有参数的 toArray
返回一个Object [],而当你传递一个数组时,它将用项填充该数组。
答案 2 :(得分:1)
尝试使用像This这样的东西。
ArrayList<Transaction > stock_list = new ArrayList<Transaction >();
stock_list.add("stock1");
stock_list.add("stock2");
Transaction [] stockArr = new Transaction [stock_list.size()];
stockArr = stock_list.toArray(stockArr);
for(String s : stockArr)
System.out.println(s);