getview()中的android刷新listview适配器

时间:2013-05-26 18:05:59

标签: android android-listview listadapter

我在适配器类中有一个自定义列表视图适配器和一个图像按钮。当我单击图像按钮时,监听器应重新加载列表视图。我需要在适配器类的getview()中重新加载列表视图。所以除了在listActivity类中使用notifyDataSetChanged()之外,我还需要了解其他选项。

由于

3 个答案:

答案 0 :(得分:1)

如果在getView()中加载了一行,你想要刷新列表视图中的单元格,还是要刷新整个列表视图?

检查一下: Android ListView Refresh Single Row

答案 1 :(得分:0)

在activity中创建一个静态处理程序,它调用一个方法来重新加载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);
            }
        });

答案 2 :(得分:0)

这很简单,只需在适配器类中编写一个方法,并在删除或添加列表中绑定到适配器的任何内容时调用它获取视图。并在列表中更改后使用notifyDataSetChanged

    public void updateResults(ArrayList<CustomList> results) {
             // assign the new result list to your existing list it will work 
                           notifyDataSetChanged();
                          }