below is my code that does not execute anything under the doInBackground
do you guys see anything wrong i am doing?, i am just adding items in the object called "Order" and show the view.
any help?
private ArrayList<Order> m_orders = null;
private OrderAdapter m_adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_orders = new ArrayList<Order>();
new taskDoSomething().execute();
this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders);
setListAdapter(this.m_adapter);
}
private class taskDoSomething extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... params) {
Log.i("LOGGER", "Starting...doInBackground loadList");
m_orders = new ArrayList<Order>();
Order o1 = new Order();
o1.setOrderName("songs_array[0]");
o1.setOrderStatus("Pending");
o1.setQuantity(111);
m_orders.add(o1);
return (null);
}
@Override
protected void onPostExecute(Void result) {
Log.i("LOGGER", "...Done doInBackground loadList");
}
}
Better:
private class taskDoSomething extends AsyncTask<Void, Void, List<Order>> {
@Override
protected List<Order> doInBackground(Void... params) {
Log.i("LOGGER", "Starting...doInBackground loadList");
List<Order> orders = new ArrayList<Order>();
Order o1 = new Order();
o1.setOrderName("songs_array[0]");
o1.setOrderStatus("Pending");
o1.setQuantity(111);
orders.add(o1);
return orders;
}
@Override
protected void onPostExecute(List<Order> result) {
m_orders.clear();
m_orders.addAll(result);
m_adapter.notifyDataSetChanged();
}
}
you need to runOnUIThread()
when changing m_orders
why are you init m_orders twice?
I think you are getting List null. Please use following code in postExecute() method of AsyncTask :
if(0!= m_orders.size())
this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders);
setListAdapter(this.m_adapter);
Remove above line from onCreate() method....
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.