Java 具有自定义ArrayAdapter的ListView-线程问题
我正在尝试使用自定义ArrayAdapter创建ListView。 下面是这里的例子。 在下面的代码中,我创建了一个ListActivity。 此列表从自定义ArrayAdapter-OrderAdapter获取其值。 OrderAdapter正在从ArrayAdapter获取其元素 我正在使用runOnUiThread来填充AdWater中的元素。 但是在这个线程的run()方法中,代码将进入无限循环。(见下文评论)。 请检查为什么它没有退出for循环 代码: 试试这个 在Java 具有自定义ArrayAdapter的ListView-线程问题,java,android,Java,Android,我正在尝试使用自定义ArrayAdapter创建ListView。 下面是这里的例子。 在下面的代码中,我创建了一个ListActivity。 此列表从自定义ArrayAdapter-OrderAdapter获取其值。 OrderAdapter正在从ArrayAdapter获取其元素 我正在使用runOnUiThread来填充AdWater中的元素。 但是在这个线程的run()方法中,代码将进入无限循环。(见下文评论)。 请检查为什么它没有退出for循环 代码: 试试这个 在OrderAdapt
OrderAdapter
setList(ArrayList<Order> items);
{
this.items.clear();
this.items.addAll(items);
notifyDataSetChanged();
}
编辑你的代码做一些折射…像这样做
- 在onCreat()中新建SampleTask().execute();
及
公共类SampleTask扩展了AsyncTask{
@Override protected void onPreExecute() { super.onPreExecute(); //show progress bar here } @Override protected Void doInBackground(Void... params) { //Do heavy work here return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); //Dissmiss the dialgo //call m_adapter.setList(m_orders) }
项
不为空且有值?并且您在哪里调用setListAdapter(this.m_adapter);
抱歉,this.items.addAll(项);
没有添加值。但即使我使用for循环代替并填充它,仍然没有在setListAdapter(此.m_适配器)上显示任何内容;
[onCreate方法的最后一行]遵循了您的建议…我相信我的思路是正确的,但面临一个问题..打开了一个新问题,因为它现在与此问题不一致:
setList(ArrayList<Order> items);
{
this.items.clear();
this.items.addAll(items);
notifyDataSetChanged();
}
if (m_orders != null && m_orders.size() > 0) {
m_adapter.setList(m_orders)
}
m_progressDialog.dismiss();
@Override
protected void onPreExecute() {
super.onPreExecute();
//show progress bar here
}
@Override
protected Void doInBackground(Void... params) {
//Do heavy work here
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//Dissmiss the dialgo
//call m_adapter.setList(m_orders)
}