An open API service indexing awesome lists of open source software.

https://github.com/shontauro-zz/android-pulltorefresh-and-loadmore

android custom listview,with interaction pattern load more and pull to refresh to load data dinamically
https://github.com/shontauro-zz/android-pulltorefresh-and-loadmore

Last synced: 5 months ago
JSON representation

android custom listview,with interaction pattern load more and pull to refresh to load data dinamically

Awesome Lists containing this project

README

        

The first thing that i have to say is render thanks to johannilsson because
all the part of pull to refresh listview is based in the code of his repository
at .

The target of this project is help other to apply the interaction pattern
pull to refresh and load more on an android listview.

#Costum Load more listview for android
![Screenshot](https://github.com/shontauro/android-pulltorefresh-and-loadmore/raw/master/loadmore.png)

More information about load more interaction pattern
at

#Costum Pull to refresh listview for android
![Screenshot](https://github.com/shontauro/android-pulltorefresh-and-loadmore/raw/master/pulltorefresh.png)

More information about pull to refresh interaction pattern
at

Repository at .

## Usage

### Layout for loadmore listview

``` xml


```
### Activity to LoadMoreListView

``` java
// set a listener to be invoked when the list reaches the end
((LoadMoreListView) getListView())
.setOnLoadMoreListener(new OnLoadMoreListener() {
public void onLoadMore() {
// Do the work to load more items at the end of list here
new LoadDataTask().execute();
}
});

private class LoadDataTask extends AsyncTask {

@Override
protected Void doInBackground(Void... params) {

if (isCancelled()) {
return null;
}

// Simulates a background task
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}

for (int i = 0; i < mNames.length; i++)
mListItems.add(mNames[i]);

return null;
}

@Override
protected void onPostExecute(Void result) {
mListItems.add("Added after load more");

// We need notify the adapter that the data have been changed
((BaseAdapter) getListAdapter()).notifyDataSetChanged();

// Call onLoadMoreComplete when the LoadMore task, has finished
((LoadMoreListView) getListView()).onLoadMoreComplete();

super.onPostExecute(result);
}

@Override
protected void onCancelled() {
// Notify the loading more operation has finished
((LoadMoreListView) getListView()).onLoadMoreComplete();
}
}
```

### Layout for pullandload listview

``` xml


```
### Activity to PullAndLoadListView

Here we have to pass two listeners one to pull operation and the other to load operation

``` java
// Set a listener to be invoked when the list should be refreshed.
((PullAndLoadListView) getListView())
.setOnRefreshListener(new OnRefreshListener() {

public void onRefresh() {
// Do work to refresh the list here.
new PullToRefreshDataTask().execute();
}
});

// set a listener to be invoked when the list reaches the end
((PullAndLoadListView) getListView())
.setOnLoadMoreListener(new OnLoadMoreListener() {

public void onLoadMore() {
// Do the work to load more items at the end of list
// here
new LoadMoreDataTask().execute();
}
});

private class LoadMoreDataTask extends AsyncTask {

@Override
protected Void doInBackground(Void... params) {

if (isCancelled()) {
return null;
}

// Simulates a background task
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}

for (int i = 0; i < mNames.length; i++)
mListItems.add(mNames[i]);

return null;
}

@Override
protected void onPostExecute(Void result) {
mListItems.add("Added after load more");

// We need notify the adapter that the data have been changed
((BaseAdapter) getListAdapter()).notifyDataSetChanged();

// Call onLoadMoreComplete when the LoadMore task, has finished
((PullAndLoadListView) getListView()).onLoadMoreComplete();

super.onPostExecute(result);
}

@Override
protected void onCancelled() {
// Notify the loading more operation has finished
((PullAndLoadListView) getListView()).onLoadMoreComplete();
}
}

private class PullToRefreshDataTask extends AsyncTask {

@Override
protected Void doInBackground(Void... params) {

if (isCancelled()) {
return null;
}

// Simulates a background task
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}

for (int i = 0; i < mAnimals.length; i++)
mListItems.addFirst(mAnimals[i]);

return null;
}

@Override
protected void onPostExecute(Void result) {
mListItems.addFirst("Added after pull to refresh");

// We need notify the adapter that the data have been changed
((BaseAdapter) getListAdapter()).notifyDataSetChanged();

// Call onLoadMoreComplete when the LoadMore task, has finished
((PullAndLoadListView) getListView()).onRefreshComplete();

super.onPostExecute(result);
}

@Override
protected void onCancelled() {
// Notify the loading more operation has finished
((PullAndLoadListView) getListView()).onLoadMoreComplete();
}
}
```

### License
Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html)

Copyright (c) 2012 [Fabian Leon](http://yelamablog.blogspot.com/)