I have a custom Adapter & a ListView & I'm trying to add the items to it dynamically, not dynamically each item hard coded, I need the items to be added using a for loop or the sort.
Here's the main function:
Arrivals arrivals_data[] = new Arrivals[] {
new Arrivals(getResources().getIdentifier(
flightInfoArray[1][2].toLowerCase(), "drawable",
getPackageName()), "Time:" + flightInfoArray[1][1]
+ " | Flight: " + ""
+ flightInfoArray[1][2].toUpperCase() + ""
+ flightInfoArray[1][3] + " | From:"
+ flightInfoArray[1][5] + " | Via:"
+ flightInfoArray[1][6] + " | Remarks:"
+ flightInfoArray[1][7] + " | ETA:"
+ flightInfoArray[1][8]),
};
ArrivalsAdapter adapter = new ArrivalsAdapter(this,
R.layout.listview_arrivals_item_row, arrivals_data);
listView1 = (ListView) findViewById(R.id.listView1);
listView1.setAdapter(adapter);
listView1.setLongClickable(true);
registerForContextMenu(listView1);
So for example:
Arrivals arrivals_data[] = new Arrivals[] {
for (int i = 0; i < flightInforArray.length; i++) {
new Arrivals(getResources().getIdentifier(
flightInfoArray[i][2].toLowerCase(), "drawable",
getPackageName()), "Time:" + flightInfoArray[i][1]
+ " | Flight: " + ""
+ flightInfoArray[i][2].toUpperCase() + ""
+ flightInfoArray[i][3] + " | From:"
+ flightInfoArray[i][5] + " | Via:"
+ flightInfoArray[i][6] + " | Remarks:"
+ flightInfoArray[i][7] + " | ETA:"
+ flightInfoArray[i][8]),
}
};
That of course can't be done so, any ideas?
Thank you in advance!
You essentially want to create a Arrivals
array dynamically. You can do this:
ArrayList<Arrivals> arrivals = new ArrayList<Arrivals>();
for (int i = 0; i < flightInfoArray.length; i++) {
Arrivals new_arrival = new Arrivals(getResources().getIdentifier(
flightInfoArray[i][2].toLowerCase(), "drawable",
getPackageName()), "Time:" + flightInfoArray[i][1]
+ " | Flight: " + ""
+ flightInfoArray[i][2].toUpperCase() + ""
....);
arrivals.add(new_arrival);
}
//now convert the arraylist to array
Arrivals[] arrivals_data = new Arrivals[arrivals.size()];
arrivals_data = arrivals.toArray(arrivals_data);
Now you can supply the arrivals_data
array to your array adapter as usual.
ArrivalsAdapter adapter = new ArrivalsAdapter(this,
R.layout.listview_arrivals_item_row, arrivals_data);