Activity中 import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.AbsListView; import android.widget.Button; import android.widget.ListView; import android.widget.ProgressBar; import java.util.ArrayList;
public class MainActivity extends AppCompatActivity { private ListView lv_total; private ArrayList<MyBean> listdata; private int Max = 30; private Handler handler = new Handler(); private Runnable runnable = new Runnable() { @Override public void run() { btn_loadmore.setVisibility(View.GONE); pb_loadmore.setVisibility(View.VISIBLE); int count = adapter.getCount(); if(count+3<Max){ for (int i = count; i < count+3; i++) { listdata.add(new MyBean("加载后的数据"+i,R.mipmap.ic_launcher)); }; }else { for (int i = count; i <Max ; i++) { listdata.add(new MyBean("加载后的数据"+i,R.mipmap.ic_launcher)); } } adapter.notifyDataSetChanged(); } }; private View footview; private Button btn_loadmore; private ProgressBar pb_loadmore; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); initAdapter(); initListerner(); } private void initListerner() { lv_total.setOnScrollListener(new AbsListView.OnScrollListener() { public int i3; @Override public void onScrollStateChanged(AbsListView absListView, int i) { if(i==SCROLL_STATE_IDLE && i3==adapter.getCount()){ pb_loadmore.setVisibility(View.VISIBLE); btn_loadmore.setVisibility(View.GONE); handler.postDelayed(runnable,2000); } } @Override public void onScroll(AbsListView absListView, int i, int i1, int i2) { i3 = i + i1 - 1; if(i3==Max+1){ lv_total.removeFooterView(footview); } } }); } private void initAdapter() { adapter = new MyAdapter(MainActivity.this,listdata); lv_total.addFooterView(footview); lv_total.setAdapter(adapter); } private void initData() { listdata = new ArrayList<>(); for (int i = 0; i < 20; i++) { listdata.add(new MyBean("这是标题"+i,R.mipmap.ic_launcher)); } } private void initView() { lv_total = (ListView) findViewById(R.id.lv_total); footview = LayoutInflater.from(this).inflate(R.layout.footview, null); pb_loadmore=(ProgressBar) footview.findViewById(R.id.pb_loadmore); btn_loadmore = (Button) footview.findViewById(R.id.btn_loadmore); btn_loadmore.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()){ case R.id.btn_loadmore: pb_loadmore.setVisibility(View.VISIBLE); btn_loadmore.setVisibility(View.GONE); handler.postDelayed(runnable,2000); break; } } }); } }
1//xml中
<ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lv_total" ></ListView>
2//footview xml中
<Button android:textSize="20dp" android:text="点击加载更多" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_loadmore" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/pb_loadmore" android:visibility="gone" />