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{

Aleph0adapter
= new Aleph0();
int mProgressStatus = 0 ;
ProgressBarprogressBar;
protected void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
LinearLayoutsearchLayout
= 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
));
TextViewtextView
= 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);
LinearLayoutloadingLayout
= 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(AbsListViewview,
int firstVisible, int visibleCount, int totalCount){

boolean loadMore = /* maybeaddapadding */
firstVisible
+ visibleCount >= totalCount;

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

public void onScrollStateChanged(AbsListViewv, int s){}

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

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

public ViewgetView( int pos,Viewv,ViewGroupp){
TextViewview
= 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{

Aleph0adapter
= new Aleph0();
int mProgressStatus = 0 ;

protected void onCreate(BundlesavedInstanceState){
super .onCreate(savedInstanceState);
LinearLayoutsearchLayout
= new LinearLayout( this );
searchLayout.setOrientation(LinearLayout.HORIZONTAL);

ButtontextView
= 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);
LinearLayoutloadingLayout
= 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(Viewv)
{
adapter.count
+= 10 ;
adapter.notifyDataSetChanged();
}
});


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

/* publicvoidonScroll(AbsListViewview,
intfirstVisible,intvisibleCount,inttotalCount){

booleanloadMore=
firstVisible+visibleCount>=totalCount;

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

public void onScrollStateChanged(AbsListViewv, int s){}

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

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

public ViewgetView( int pos,Viewv,ViewGroupp){
TextViewview
= new TextView(EndLessActivity. this );
view.setText(
" entry " + pos);
return view;
}
}



}

更多相关文章

  1. Android自定义控件
  2. Android中四种OnClick事件的写法
  3. android 实现透明按钮
  4. Android(安卓)点击回退按钮时弹出提示框
  5. Android(安卓)点击按钮隐藏键盘
  6. QQ侧滑删除分享(工具类)
  7. Android二个按钮Dialog对话框
  8. BaseAdapter
  9. Android(安卓)Button

随机推荐

  1. 安卓10
  2. 盒模型与常用的居中方式
  3. InnoDB存储引擎简介
  4. 再分享几个docker小技巧
  5. PHP实战: 实现数据的分页显示和编辑,删除
  6. js:值传递引用传递、结构赋值、流程控制
  7. 2021-2-28
  8. IntelliJ IDEA 激活码 2021.02.28日更
  9. Mysql5.7的varchar类型字段建索引竟然失
  10. 给Mysql服务添加防火墙策略,就这么简单