Java Android中的For循环被遗漏

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

我在Android中有一个活动,它获取web服务的结果并将其放入适配器中以显示项目列表。我已经为这个活动创建了一个名为
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();
}