我在适配器类中有一个自定义列表视图适配器和一个图像按钮。当我单击图像按钮时,侦听器应重新加载列表视图。我需要在适配器类的 getview() 中重新加载列表视图。因此,除了在我的 listActivity 类中使用 notifyDataSetChanged() 之外,我还需要知道其他选项。
谢谢
我在适配器类中有一个自定义列表视图适配器和一个图像按钮。当我单击图像按钮时,侦听器应重新加载列表视图。我需要在适配器类的 getview() 中重新加载列表视图。因此,除了在我的 listActivity 类中使用 notifyDataSetChanged() 之外,我还需要知道其他选项。
谢谢
如果在 getView() 中加载了单行,您想刷新列表视图中的单元格还是要刷新整个列表视图?
看看这个: Android ListView 刷新单行
在活动中创建一个静态处理程序,该处理程序调用一个重新加载列表视图的方法,并在需要时从适配器向该处理程序发送消息。
handler = new Handler() {
public void handleMessage(Message paramAnonymousMessage) {
switch (paramAnonymousMessage.what) {
case 1:
populateList();
break;
}
}
};
public void populateBill() {
MyBasketAdapter adapter = new MyBasketAdapter(this, basketList);
listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(adapter);
}
在适配器类内部。例如,
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Message msg = Message.obtain();
msg.what = 1;
MyActivity.handler.sendMessage(msg);
}
});
这非常简单,只需在适配器类中编写一个方法,并在您删除或添加列表中绑定到适配器的任何内容时调用它获取视图。并在列表更改后使用 notifyDataSetChanged
public void updateResults(ArrayList<CustomList> results) {
// assign the new result list to your existing list it will work
notifyDataSetChanged();
}