package com.cheng.animationstudy.activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import com.cheng.animationstudy.C; import com.cheng.animationstudy.R; import com.cheng.animationstudy.customview.pulltorefresh02.CustomListView; import com.cheng.utils.ViewFinder; import java.util.ArrayList; /** * 直接自定义ListView实现下拉刷新和上拉加载功能 */ public class PullToRefreshAnim02Activity extends AppCompatActivity implements CustomListView.OnRefreshListener, CustomListView.OnLoadMoreListener { private CustomListView mListView; private Button mCanPullRefBtn; private Button mCanLoadMoreBtn; private Button mCanAutoLoadMoreBtn; private Button mIsMoveToFirstItemBtn; private ArrayAdapter<String> mListAdapter; private ArrayList<String> mValueList = new ArrayList<String>() {{ add("value 0"); add("value 1"); add("value 2"); add("value 3"); add("value 4"); add("value 5"); add("value 6"); add("value 7"); add("value 8"); add("value 9"); add("value 10"); }}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pulltorefreshanim02); initView(); initListener(); initData(); } private void initView() { this.mListView = ViewFinder.findViewById(this, R.id.clv_test); this.mCanPullRefBtn = ViewFinder.findViewById(this, R.id.btn_canpullref); this.mCanLoadMoreBtn = ViewFinder.findViewById(this, R.id.btn_canloadmoreflag); this.mCanAutoLoadMoreBtn = ViewFinder.findViewById(this, R.id.btn_autoloadmoreflag); this.mIsMoveToFirstItemBtn = ViewFinder.findViewById(this, R.id.btn_ismovetofirstitem); } private void initListener() { this.mListView.setOnRefreshListener(this); this.mListView.setOnLoadListener(this); } private void initData() { this.mListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mValueList); this.mListView.setAdapter(mListAdapter); } public void onClick(View v) { switch (v.getId()) { case R.id.btn_canpullref: canPullRef(); break; case R.id.btn_canloadmoreflag: canLoadMoreFlag(); break; case R.id.btn_autoloadmoreflag: autoLoadMoreFlag(); break; case R.id.btn_ismovetofirstitem: isMoveToFirstItem(); break; } } private void canPullRef() { mListView.setCanRefresh(!mListView.isCanRefresh()); if(mCanPullRefBtn.getText().toString(). equals("关闭\n下拉刷新")){ mCanPullRefBtn.setText("启用\n下拉刷新"); }else{ mCanPullRefBtn.setText("关闭\n下拉刷新"); } } private void canLoadMoreFlag() { mListView.setCanLoadMore(!mListView.isCanLoadMore()); if(mCanLoadMoreBtn.getText().toString(). equals("关闭\n加载更多")){ mCanLoadMoreBtn.setText("启用\n加载更多"); }else{ mCanLoadMoreBtn.setText("关闭\n加载更多"); } } private void autoLoadMoreFlag() { mListView.setAutoLoadMore(!mListView.isAutoLoadMore()); if(mCanAutoLoadMoreBtn.getText().toString(). equals("关闭自动加载更多")){ mCanAutoLoadMoreBtn.setText("启用自动加载更多"); }else{ mCanAutoLoadMoreBtn.setText("关闭自动加载更多"); } } private void isMoveToFirstItem() { mListView.setMoveToFirstItemAfterRefresh( !mListView.isMoveToFirstItemAfterRefresh()); if(mIsMoveToFirstItemBtn.getText().toString(). equals("关闭移动到第一条Item")){ mIsMoveToFirstItemBtn.setText("启用移动到第一条Item"); }else{ mIsMoveToFirstItemBtn.setText("关闭移动到第一条Item"); } } @Override public void onLoadMore() { mListView.postDelayed(new Runnable() { @Override public void run() { mListView.onLoadMoreComplete(); } }, C.Int.IMITATE_NET_DELAYED * 2); } @Override public void onRefresh() { mListView.postDelayed(new Runnable() { @Override public void run() { mListView.onRefreshComplete(); } }, C.Int.IMITATE_NET_DELAYED * 2); } }