Java Android中的For循环被遗漏
我在Android中有一个活动,它获取web服务的结果并将其放入适配器中以显示项目列表。我已经为这个活动创建了一个名为Java Android中的For循环被遗漏,java,android,for-loop,Java,Android,For Loop,我在Android中有一个活动,它获取web服务的结果并将其放入适配器中以显示项目列表。我已经为这个活动创建了一个名为OnLoadCompleteListener的侦听器接口,这个活动的侦听器如下所示 mListener = new OnLoadCompleteListener() { @Override public void onPostExecute(RootWebService service) { if(service instanceof WebSe
OnLoadCompleteListener
的侦听器接口,这个活动的侦听器如下所示
mListener = new OnLoadCompleteListener() {
@Override
public void onPostExecute(RootWebService service) {
if(service instanceof WebService) {
//gets the number of items
int total = ((WebService) service).getCount();
for(int i=0; i<total; ++i) {
//Log.d("ITEM", "inserting " + i);
Item item = ((WebService) service).get(i);
//our adapter class automatically receives items
mAdapter.addItem(item);
}
}
}
};
mItems
正是您所期望的。我认为您需要执行类似于使无效
的操作,或者执行类似于这些操作的操作,这些操作基本上只是刷新适配器中的数据
我想是这个
myListView.getAdapter().notifyDataSetChanged()代码>
如果这不起作用,可能是
myListView.invalidate()代码>我认为您需要执行类似于使无效
的操作,或者执行类似的操作,这些操作基本上只是刷新适配器中的数据
我想是这个
myListView.getAdapter().notifyDataSetChanged()代码>
如果这不起作用,可能是
myListView.invalidate()代码>您是否调试了它,并查看该程序是否真的进入for循环或完全跳过它?是的,我逐步完成了代码。它直接跳过for
循环。是否确定总计大于0?在循环之前记录总计,包括和不包括其他日志。mAdapter
是一个适配器,用于填充列表视图。它很好用。我刚刚用一个Log.d(…)
语句记录了total
,它确认了total
确实是12。你调试过它了吗,看看程序是真的进入for循环还是完全跳过了它?是的,我仔细检查了代码。它直接跳过for
循环。是否确定总计大于0?在循环之前记录总计,包括和不包括其他日志。mAdapter
是一个适配器,用于填充列表视图。它很好用。我刚刚用一个Log.d(…)
语句记录了total
,并确认total
确实是12。问题不在于适配器:事实是填充适配器的代码没有被命中,因为for
循环没有运行。还有getListView().postInvalidate()嗯,我看不到您通知数据已更改,并且for循环在记录时似乎正在工作,已取出的日志调用不会禁用for循环。for循环肯定没有运行。我仔细阅读了代码。另外,notifyDataSetChanged()
方法实际上是在addItem(Item)
方法中调用的,将该项添加到适配器列表后。问题不在于适配器:而是填充适配器的代码没有被命中,因为for
循环没有运行。还有getListView().postInvalidate()。我看不到您通知数据已更改,而for循环似乎在日志中工作,执行的日志调用不会禁用for循环。for
循环肯定没有运行。我仔细阅读了代码。在将项添加到适配器列表中之后,notifyDataSetChanged()
方法实际上在addItem(Item)
方法中被调用。
public synchronized void addItem(Item item) {
mItems.add(item);
notifyDataSetChanged();
}