package com.example.a16_pulltorefresh_demo; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ArrayAdapter; import android.widget.ListView; import com.handmark.pulltorefresh.library.ILoadingLayout; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private PullToRefreshListView refreshListView; private List<String> list = new ArrayList<>(); private ArrayAdapter<String> adapter; private ILoadingLayout startLabels; private ILoadingLayout endLabels; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); refreshListView = (PullToRefreshListView) findViewById(R.id.refresh_list_view); getData(); //设置刷新时显示的刷新状态 /**设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉, PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */ refreshListView.setMode(PullToRefreshBase.Mode.BOTH); /** * 设置下拉和上拉的时候显示的文字 */ //通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的文字的区别,第一个true 代表下来状态 ,第二个true 代表上拉的状态 startLabels = refreshListView.getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉刷新"); startLabels.setRefreshingLabel("正在刷新..."); startLabels.setReleaseLabel("放开刷新"); endLabels = refreshListView.getLoadingLayoutProxy(false, true); endLabels.setPullLabel("上拉刷新"); endLabels.setRefreshingLabel("正在载入..."); endLabels.setReleaseLabel("放开刷新..."); refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(final PullToRefreshBase<ListView> refreshView) { new AsyncTask<Void,Void,Void>(){ @Override protected Void doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { getData(); startLabels.setLastUpdatedLabel("上次刷新:2017-09-11"); refreshView.onRefreshComplete(); super.onPostExecute(aVoid); } }.execute(); } @Override public void onPullUpToRefresh(final PullToRefreshBase<ListView> refreshView) { new AsyncTask<Void,Void,Void>(){ @Override protected Void doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void aVoid) { getData(); startLabels.setLastUpdatedLabel("上次刷新:09-01"); refreshView.onRefreshComplete(); super.onPostExecute(aVoid); } }.execute(); } }); } private void getData() { for (int i=0;i<10;i++){ list.add("知识条目"+i); } if (adapter==null){ adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1,android.R.id.text1,list); refreshListView.setAdapter(adapter); }else { adapter.notifyDataSetChanged(); } } }
pulltorefresh_demo
最新推荐文章于 2023-10-13 10:39:37 发布