Android ListView不会更新

Android ListView不会更新,android,android-emulator,Android,Android Emulator,我有一个带有自定义ArrayAdapter的listview。当ArrayAdapter中的更改时,gui应该更新。然而,当它应该更新时,它不会更新,除非你按下模拟器上的一个键。可单击的行也不可单击,除非我单击了emulator上的任意按钮。 在本例中,listview的基础数据在其他地方更改,然后通知观察者listview public void update(java.util.Observable arg0, Object arg1) { Log.e("Suppo

我有一个带有自定义ArrayAdapter的listview。当ArrayAdapter中的更改时,gui应该更新。然而,当它应该更新时,它不会更新,除非你按下模拟器上的一个键。可单击的行也不可单击,除非我单击了emulator上的任意按钮。 在本例中,listview的基础数据在其他地方更改,然后通知观察者listview

public void update(java.util.Observable arg0, Object arg1) 
    {
        Log.e("Supposed","to update");
        ad.notifyDataSetChanged(); //Ad is the arrayadapter                         
    }
按下按钮后,数据将正确显示。但是为什么呢? 有什么想法吗? 当我检查ArrayAdapter的items引用时,它会显示更新的值,但gui不会。 Plz帮助

编辑:

即使使用arrayadapter.additem,我也必须按其他位置才能重新加载它

当ArrayAdapter中的 更改了应该更新的gui


如果将,如果您通过添加、插入或删除更改ArrayAdapter的数据。如果您以其他方式更改数据,ArrayAdapter将不知道该更改。

好的,那么问题是除了gui线程之外,没有任何线程可以更新gui线程。 所以我所做的是在onCreate事件中声明一个处理程序

h= new Handler(){
                @Override
                public void handleMessage(Message msg)
                {
                    switch (msg.what)
                    {
                    case 0:
                        ad.notifyDataSetChanged();
                    }
                }
            };
在我的公共void updatejava.util.Observable arg0中,对象arg1

我把


就这样!希望这一个对某人有用。

即使是arrayadapter.addItem也需要按下任何按钮来响应更改。@Raul:不,它没有。看到并猜测我的模拟器不工作,然后。我将在几天后试用ubuntu
h= new Handler(){
                @Override
                public void handleMessage(Message msg)
                {
                    switch (msg.what)
                    {
                    case 0:
                        ad.notifyDataSetChanged();
                    }
                }
            };
Message ms= new Message();
        ms.what=0;
        h.sendMessage(ms);