android 移动开发 实现上拉加载更多实现方式

来源:互联网 发布:打蛇电影 知乎 编辑:程序博客网 时间:2024/05/14 18:26

第一种:实现OnScrollListener,重写的几个方法有:

onscroll()、onScrollStateChanged()。

那么在用移动互联技术下载图片等信息的时候,显示既定的条数,当滚动到最后一条的时候显示可见布局,而后适配器notifyDataSetChanged()改变list数据,可见布局消失setVisibility(View.GONE);

<span style="font-size:14px;">public class loadmoreActivity extends Activity implements OnScrollListener{ private ListView listview; private View moreView; private SimpleAdapter adapter; private ArrayList<HashMap<String, String>> listData; private int count; private int lastItem;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listview=(ListView) findViewById(R.id.listview);moreView=getLayoutInflater().inflate(R.layout.prenovate, null);listData=new ArrayList<HashMap<String,String>>();prepareData();count=listData.size();adapter=new SimpleAdapter(this, listData, R.layout.list_item, new String[]{"itemText"}, new int[]{R.id.text_name});listview.addFooterView(moreView);listview.setAdapter(adapter);listview.setOnScrollListener(this);}private void prepareData() {// TODO Auto-generated method stubfor(int i=1;i<5;i++){HashMap<String, String> map=new HashMap<String, String>();map.put("itemText", i+("大波妞真在接近"));listData.add(map);}}  private void loadMoreDate(){  for(int i=count;i<count+5;i++){  HashMap<String, String> map=new HashMap<String, String>();  map.put("itemText", i+("大波妞真在接近"));  listData.add(map);    }  count = listData.size();  }@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stublastItem = firstVisibleItem + visibleItemCount -1; }@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// TODO Auto-generated method stubif(lastItem == count && scrollState==this.SCROLL_STATE_IDLE){moreView.setVisibility(view.VISIBLE);mHandler.sendEmptyMessage(0);}}private Handler mHandler = new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case 0:loadMoreDate();adapter.notifyDataSetChanged();moreView.setVisibility(View.GONE);if(count>30){Toast.makeText(MainActivity.this, "所有的妞都在这里了", 3000).show();listview.removeFooterView(moreView);}break;}};} ;}</span>



0 0
原创粉丝点击