Riny
Riny

Reputation: 159

android refresh listview adapter within getview()

I have got a custom list view adapter and an image button in the adapter class. When i click on the image button, the listener should reload the list view. I need to reload the list view within getview() of adapter class. So I need to know other options than using notifyDataSetChanged() in my listActivity class.

Thanks

Upvotes: 0

Views: 10945

Answers (3)

Vivek  Samele
Vivek Samele

Reputation: 349

That is very Simple just write a method in your adapter class and call it get view when you deleting or adding anything in your list which you are binding to your adapter.and use notifyDataSetChanged after change in list

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

Upvotes: 0

Nidhin Rejoice
Nidhin Rejoice

Reputation: 1417

Create a static handler inside the activity which calls a method which reloads the listview and send a message to this handler from the adapter whenever required.

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);
}

Inside the adapter class. for example,

button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                    Message msg = Message.obtain();
                    msg.what = 1;
                    MyActivity.handler.sendMessage(msg);
            }
        });

Upvotes: 0

Luser_k
Luser_k

Reputation: 21

You want to refresh a cell inside the listview or do you want to refresh the whole listview, if a single row is loaded inside getView() ?

Check this out: Android ListView Refresh Single Row

Upvotes: 1

Related Questions