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



}

 listview下部是按钮控制:

 

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)