Добавлен пример бесконечного списка для почты
This commit is contained in:
parent
9efd7f8d86
commit
3a419f0c3b
@ -15,6 +15,7 @@ import com.annimon.client.adapters.ActionsAdapter;
|
|||||||
import com.annimon.client.entities.Action;
|
import com.annimon.client.entities.Action;
|
||||||
import com.annimon.client.fragments.DiaryFragment;
|
import com.annimon.client.fragments.DiaryFragment;
|
||||||
import com.annimon.client.fragments.ForumFragment;
|
import com.annimon.client.fragments.ForumFragment;
|
||||||
|
import com.annimon.client.fragments.MailFragment;
|
||||||
|
|
||||||
import net.simonvt.menudrawer.MenuDrawer;
|
import net.simonvt.menudrawer.MenuDrawer;
|
||||||
import net.simonvt.menudrawer.Position;
|
import net.simonvt.menudrawer.Position;
|
||||||
@ -79,6 +80,8 @@ public class MainActivity extends Activity {
|
|||||||
fragment = new ForumFragment();
|
fragment = new ForumFragment();
|
||||||
} else if ("diary".equals(path)) {
|
} else if ("diary".equals(path)) {
|
||||||
fragment = new DiaryFragment();
|
fragment = new DiaryFragment();
|
||||||
|
} else if ("mail".equals(path)) {
|
||||||
|
fragment = new MailFragment();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fragment == null) return;
|
if (fragment == null) return;
|
||||||
|
73
src/com/annimon/client/fragments/MailFragment.java
Normal file
73
src/com/annimon/client/fragments/MailFragment.java
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package com.annimon.client.fragments;
|
||||||
|
|
||||||
|
import android.app.ListFragment;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.widget.AbsListView;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class MailFragment extends ListFragment {
|
||||||
|
|
||||||
|
private int itemsPerPage = 10;
|
||||||
|
private boolean loadingMore = false;
|
||||||
|
private ArrayList<String> items;
|
||||||
|
private ArrayAdapter<String> adapter;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
|
items = new ArrayList<String>();
|
||||||
|
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
|
||||||
|
|
||||||
|
// FooterView для показа информации о подгрузке данных
|
||||||
|
TextView footerView = new TextView(getActivity());
|
||||||
|
footerView.setText("Loading...");
|
||||||
|
getListView().addFooterView(footerView);
|
||||||
|
|
||||||
|
setListAdapter(adapter);
|
||||||
|
getListView().setOnScrollListener(new AbsListView.OnScrollListener(){
|
||||||
|
@Override
|
||||||
|
public void onScrollStateChanged(AbsListView view, int scrollState) {}
|
||||||
|
@Override
|
||||||
|
public void onScroll(AbsListView view, int firstVisibleItem,
|
||||||
|
int visibleItemCount, int totalItemCount) {
|
||||||
|
int lastInScreen = firstVisibleItem + visibleItemCount;
|
||||||
|
if((lastInScreen == totalItemCount) && !(loadingMore)){
|
||||||
|
Thread thread = new Thread(loadMoreListItems);
|
||||||
|
thread.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Thread thread = new Thread(loadMoreListItems);
|
||||||
|
thread.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Runnable loadMoreListItems = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
loadingMore = true;
|
||||||
|
items = new ArrayList<String>();
|
||||||
|
try {
|
||||||
|
Thread.sleep(1000);
|
||||||
|
} catch (InterruptedException e) {}
|
||||||
|
for (int i = 0; i < itemsPerPage; i++) {
|
||||||
|
items.add(String.valueOf(System.currentTimeMillis()));
|
||||||
|
}
|
||||||
|
getActivity().runOnUiThread(returnRes);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private Runnable returnRes = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if(items != null && items.size() > 0){
|
||||||
|
adapter.addAll(items);
|
||||||
|
}
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
loadingMore = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user