ListView 分页加载

package com.example.lianxtapplication.fragment;

 

/**
 * A simple {@link Fragment} subclass.
 */
public class ListViewFragment extends Fragment implements View.OnClickListener, AbsListView.OnScrollListener {


    private ListView lv;
    private int mPageIndex = 1;
    private int i3;

    private Button ba;
    private ProgressBar pr;
    private SwipeRefreshLayout Swip;
    private View footView1;
    private ListViewAdapter2 listViewAdapter2;

    private List<ListUser.ParamzBean.FeedsBean> list = new ArrayList<>();

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String st = (String) msg.obj;
            Log.e("---", st);
            Gson gson = new Gson();
            ListUser listUser = gson.fromJson(st, ListUser.class);
            list.addAll(listUser.getParamz().getFeeds());

            //适配器刷新
            listViewAdapter2.notifyDataSetChanged();
            Swip.setRefreshing(false);
        }
    };


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View inflate = inflater.inflate(R.layout.fragment_list_view, container, false);
        initView(inflate);
        initData();
        initFootView();
        initAdapter();
        //下拉刷新
        Swip.setProgressBackgroundColorSchemeResource(android.R.color.white);
        // 设置下拉进度的主题颜色
        Swip.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);

        Swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                list.clear();
                mPageIndex = 1;
                initData();

            }
        });

        return inflate;
    }

    private void initAdapter() {

        listViewAdapter2 = new ListViewAdapter2(list, getActivity());
        lv.addFooterView(footView1);
        lv.setAdapter(listViewAdapter2);
    }

    //初始化底部试图
    private void initFootView() {
        //在主页面里用
        //footView1 = getLayoutInflater().inflate(R.layout.item, null);
//获取地部控件 因为在fragment里面所以要加 getActivity()
 footView1 = getActivity().getLayoutInflater().inflate(R.layout.item, null);     
   //获取按钮id       
 ba = footView1.findViewById(R.id.basicaa);     
   //获取进度条的id       
  pr = footView1.findViewById(R.id.pr);     
    //按钮的点击事件      
  ba.setOnClickListener(this);   
 }  
 
  private void initData() { 
    
     new Thread(new Runnable() {      
      @Override           
    public void run() {              
      try {        
           
 String sendGet = MyOkHttp.getMyOkHttp().sendGet("http://litchiapi.jstv.com/api/GetFeeds?column=3&PageSize=10&pageIndex=" + mPageIndex + "&val=100511D3BE5301280E0992C73A9DEC41");     
               Message message = new Message();          
               message.obj = sendGet;                
               handler.sendMessage(message);              
  }       catch (IOException e) {                  
  e.printStackTrace();           
     }          
  }      
  }).start();    
}   
 
 private void initView(View inflate) {      
  Swip = (SwipeRefreshLayout) inflate.findViewById(R.id.Swip);        
    lv = (ListView) inflate.findViewById(R.id.lv);       
     lv.setOnScrollListener(this);   
 
 } 
   //点击监听   
 @Override  
  public void onClick(View view) {        
    switch (view.getId()) {         
     case R.id.basicaa:               
         //点击完显示加载进度条              
         pr.setVisibility(View.VISIBLE);             
         //将按钮隐藏                
        ba.setVisibility(View.GONE);              
         //变量增加              
         mPageIndex++;            
         //添加新数据              
         initData();           
         break;      
  }   
 } 
 
   //滑动状态监听    @Override  
  public void onScrollStateChanged(AbsListView absListView, int i) { 
       int count = listViewAdapter2.getCount();     
        if (i == 0 && count == i3) {        
        //滑动底部显示按钮          
         ba.setVisibility(View.VISIBLE);        
        //将加载进度条隐藏         
         pr.setVisibility(View.GONE);     
   }  
  } 
 
   //滑动时走的方法    
@Override  
  public void onScroll(AbsListView absListView, int i, int i1, int i2) { 
       i3 = i2 - 1;   
 }
}
 
 
 
 
//ListView分页加载的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.lianxtapplication.fragment.ListViewFragment"
    android:orientation="vertical"
    >

    <!-- TODO: Update blank fragment layout -->
    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/Swip"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"

            android:layout_height="match_parent"></ListView>

    </android.support.v4.widget.SwipeRefreshLayout>


</LinearLayout>
 
 
 
 
 
//Button 按钮 ,
ProgressBar 加载进度

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
<Button
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:id="@+id/basicaa"
    android:text="点击加载"
    />
    <ProgressBar
        android:visibility="gone"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:id="@+id/pr"
        />
</LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值