Android 执行doInBackground(异步任务)-onCreate(Bundle savedInstanceState)
下面是我的代码,在doInBackground下不执行任何操作。你们看到我做错了什么吗?我只是在名为Order的对象中添加项并显示视图 有什么帮助吗Android 执行doInBackground(异步任务)-onCreate(Bundle savedInstanceState),android,android-asynctask,Android,Android Asynctask,下面是我的代码,在doInBackground下不执行任何操作。你们看到我做错了什么吗?我只是在名为Order的对象中添加项并显示视图 有什么帮助吗 private ArrayList<Order> m_orders = null; private OrderAdapter m_adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS
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");
}
}
更改m_订单时,您需要运行NuithRead
为什么要两次初始化m_订单?更改m_订单时需要运行NUITHREAD
你为什么要两次初始化m_订单?我想你得到的列表是空的。请在AsyncTask的postExecute方法中使用以下代码:
if(0!= m_orders.size())
this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders);
setListAdapter(this.m_adapter);
从onCreate方法中删除上面的行…我认为您得到的列表为空。请在AsyncTask的postExecute方法中使用以下代码:
if(0!= m_orders.size())
this.m_adapter = new OrderAdapter(this, R.layout.row, m_orders);
setListAdapter(this.m_adapter);
从onCreate方法中删除上面的行….更好:
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();
}
}更好:
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();
}
}