ListView
在調用notifyDataSetChanged();
時似乎沒有刷新,但在其適配器重新設置時刷新。ListView不會刷新notifyDataSetChanged
在我的活動onCreate
我初始化我的ListView
和我的適配器。然後我有這個Hanler
每秒鐘檢查新值。 listview.setAdapter(arrayAdapter);
作品,但arrayAdapter.notifyDataSetChanged();
不做任何事情。
下面是代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
arrayAdapter = new ArrayAdapter<Integer>(this,android.R.layout. simple_list_item_1, myIntegers);
lv.setAdapter(arrayAdapter);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == DIS){
handler.sendEmptyMessageDelayed(DIS, 1000);
if(!refresh()){
handler.removeMessages(DIS);
}
}
}
};
public boolean refresh(){
if(ports.isEmpty()){
return false;
}else{
listview.setAdapter(arrayAdapter); //WORKS
arrayAdapter.notifyDataSetChanged(); // DOESN'T WORK
return true;
}
}
所以我想知道如何使這項工作,notifyDataSetChanged
,因爲我讀的是做正確的方式,反正即使setAdapter
不工作,它每次刷新它時,都會使我的列表視圖跳轉到開頭。
編輯:
爲了澄清的事情,我加入更值myIntegers。
我們可以看到修改現有適配器的代碼嗎?您是否通過調用其方法來更改適配器?或者你在修改myIntegers數據集? – Joel 2012-08-13 22:55:01
即時向myIntegers添加更多值 – 2012-08-13 22:58:12
嘗試使用adapter.add()方法添加值。我不認爲你可以修改用於創建適配器的數組,然後期望它保存更新的實例來更新視圖。 – Joel 2012-08-13 23:00:54