Android 滑动加载数据

package  com.ScrollListView;

import  Android.app.ListActivity;
import  Android.os.Bundle;
import  Android.view.Gravity;
import  Android.view.View;
import  Android.view.ViewGroup;

import  Android.widget.AbsListView;
import  Android.widget.BaseAdapter;
import  Android.widget.LinearLayout;
import  Android.widget.ProgressBar;
import  Android.widget.TextView;
import  Android.widget.AbsListView.OnScrollListener;

public   class  EndLessActivity  extends  ListActivity  implements  OnScrollListener  {
     
    Aleph0 adapter  =   new  Aleph0();
     int  mProgressStatus  =   0 ;
    ProgressBar progressBar;
     protected   void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
        LinearLayout searchLayout  =   new  LinearLayout( this );
        searchLayout.setOrientation(LinearLayout.HORIZONTAL);
              progressBar  =   new  ProgressBar( this );
              progressBar.setPadding( 0 ,  0 ,  15 ,  0 );
              searchLayout.addView(progressBar, new  LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT
              ));
              TextView textView  =   new  TextView( this );
              textView.setText( " 加载中... " );
              textView.setGravity(Gravity.CENTER_VERTICAL);
              searchLayout.addView(textView, new  LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.FILL_PARENT
              ));
              searchLayout.setGravity(Gravity.CENTER);
              LinearLayout loadingLayout  =   new  LinearLayout( this );
              loadingLayout.addView(searchLayout, new  LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT
              ));
              loadingLayout.setGravity(Gravity.CENTER);
             getListView().addFooterView(loadingLayout);

        setListAdapter(adapter);
        getListView().setOnScrollListener( this );
    }

     public   void  onScroll(AbsListView view,
         int  firstVisible,  int  visibleCount,  int  totalCount) {

         boolean  loadMore  =   /*  maybe add a padding  */
            firstVisible  +  visibleCount  >=  totalCount;

         if (loadMore) {
            adapter.count  +=  visibleCount;  //  or any other amount
            adapter.notifyDataSetChanged();
        }
    }

     public   void  onScrollStateChanged(AbsListView v,  int  s) { }   

     class  Aleph0  extends  BaseAdapter {
         int  count  =   40 ;  /*  starting amount  */

         public   int  getCount() {  return  count; }
         public  Object getItem( int  pos) {  return  pos; }
         public   long  getItemId( int  pos) {  return  pos; }

         public  View getView( int  pos, View v, ViewGroup p) {
                TextView view  =   new  TextView(EndLessActivity. this );
                view.setText( " entry  "   +  pos);
                 return  view;
        }
    }



}


package  com.ScrollListView;

import  Android.app.ListActivity;
import  Android.os.Bundle;
import  Android.view.Gravity;
import  Android.view.View;
import  Android.view.ViewGroup;
import  Android.widget.AbsListView;
import  Android.widget.BaseAdapter;
import  Android.widget.Button;
import  Android.widget.LinearLayout;
import  Android.widget.ProgressBar;
import  Android.widget.TextView;
import  Android.widget.AbsListView.OnScrollListener;

public   class  EndLessActivity  extends  ListActivity   {
     
    Aleph0 adapter  =   new  Aleph0();
     int  mProgressStatus  =   0 ;
  
     protected   void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
        LinearLayout searchLayout  =   new  LinearLayout( this );
        searchLayout.setOrientation(LinearLayout.HORIZONTAL);
           
              Button textView  =   new  Button( this );
              textView.setText( " 加载中... " );
              textView.setGravity(Gravity.CENTER_VERTICAL);
              searchLayout.addView(textView, new  LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.FILL_PARENT
              ));
              searchLayout.setGravity(Gravity.CENTER);
              LinearLayout loadingLayout  =   new  LinearLayout( this );
              loadingLayout.addView(searchLayout, new  LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT
              ));
              loadingLayout.setGravity(Gravity.CENTER);
             getListView().addFooterView(loadingLayout);
             textView.setOnClickListener( new  Button.OnClickListener() 
             {        @Override    
                  public   void  onClick(View v)
             {       
                 adapter.count  +=   10 ;
                 adapter.notifyDataSetChanged();
                 }    
             });
           
           
        setListAdapter(adapter);
         // getListView().setOnScrollListener(this);
    }

   /* public void onScroll(AbsListView view,
        int firstVisible, int visibleCount, int totalCount) {

        boolean loadMore =
            firstVisible + visibleCount >= totalCount;

        if(loadMore) {
            adapter.count += visibleCount;
            adapter.notifyDataSetChanged();
        }
    }  */

     public   void  onScrollStateChanged(AbsListView v,  int  s) { }   

     class  Aleph0  extends  BaseAdapter {
         int  count  =   40 ;  /*  starting amount  */

         public   int  getCount() {  return  count; }
         public  Object getItem( int  pos) {  return  pos; }
         public   long  getItemId( int  pos) {  return  pos; }

         public  View getView( int  pos, View v, ViewGroup p) {
                TextView view  =   new  TextView(EndLessActivity. this );
                view.setText( " entry  "   +  pos);
                 return  view;
        }
    }
}

你可能感兴趣的:(android,OS)