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