您当前的位置: 首页 > 

仙剑情缘

暂无认证

  • 3浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

加载ListView

仙剑情缘 发布时间:2018-05-24 22:37:39 ,浏览量:3

1. activity_main.xml布局


2. loading_view.xml布局



    


3. SimpleAdapter.java

package com.idt.os.frameplay;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

/**
 * Created by jzhou on 2018/5/24.
 */

public class SimpleAdapter extends BaseAdapter
    {
        private int mCount = 20;
        private final LayoutInflater mLayoutInflater;
        private final String mPositionString;
        private final int mTextViewResourceId;

        public SimpleAdapter(Context context,int mTextViewResourceId) {
        this.mTextViewResourceId = mTextViewResourceId;
        mPositionString = context.getString(R.string.position)+" ";
        mLayoutInflater = LayoutInflater.from(context);
    }
    public void addMoreItems(int count){
        mCount += count;
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return mCount;
    }

    @Override
    public String getItem(int position) {
        return mPositionString+position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final TextView tv;
        if(convertView == null){
            tv = (TextView) mLayoutInflater.inflate(mTextViewResourceId,null);
        }else {
            tv = (TextView) convertView;
        }
        tv.setText(getItem(position));
        return tv;
    }
}

4.AutoLoadingListFragment.java

package com.idt.os.frameplay;

import android.app.ListFragment;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;


/**
 * Created by jzhou on 2018/5/24.
 */

public class AutoloadingListFragment extends ListFragment implements AbsListView.OnScrollListener {
    private final int AUTOLOAD_THRESHOLD = 4;
    private final int MAXIMUM_ITEMS = 52;
    private SimpleAdapter mAdapter;
    private View mFooterView;
    private Handler mHandler;
    private boolean mIsLoading = false;
    private boolean mMoreDataAvailable = true;
    private boolean mWasloading = false;

    private Runnable mAddItemsRunnable = new Runnable() {
        @Override
        public void run() {
            mAdapter.addMoreItems(10);
            mIsLoading = false;
        }
    };

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        final Context context = getActivity();
        mHandler = new Handler();
        mAdapter = new SimpleAdapter(context,android.R.layout.simple_list_item_1);
        mFooterView = LayoutInflater.from(context).inflate(R.layout.loading_view,null);
        getListView().addFooterView(mFooterView,null,false);
        setListAdapter(mAdapter);
        getListView().setOnScrollListener(this);

    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        if(!mIsLoading && mMoreDataAvailable){
            if(totalItemCount >= MAXIMUM_ITEMS){
                mMoreDataAvailable = false;
                getListView().removeFooterView(mFooterView);

            }else if(totalItemCount - AUTOLOAD_THRESHOLD             
关注
打赏
1658017818
查看更多评论
立即登录/注册

微信扫码登录

0.0371s