zoukankan      html  css  js  c++  java
  • android下拉刷新控件之第三方开源控件的使用实现

    本次使用的第三方下拉刷新控件是:Android-Pull-Refresh,下载地址https://github.com/chrisbanes/Android-PullToRefresh

    该控件适用于:

    • ViewPager
    • HorizontalScrollView
    • ScrollView
    • WebView
    • GridView
    • ListView
    • ExpandableListView
    • ListFragment

    从github上下载解压后,将library,PullToRefreshListFragment,PullToRefreshViewPager导入项目后,右键自己新建的项目,选择Properties。进入例如以下图的页面后点击Add加入就可以:

    加入好后就可以開始编写Demo,详细代码例如以下:
    <?

    xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- The PullToRefreshListView replaces a standard ListView widget. --> <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:divider="#19000000" android:dividerHeight="4dp" android:fadingEdge="none" android:fastScrollEnabled="false" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:smoothScrollbar="true" ptr:ptrDrawable="@drawable/ic_launcher" ptr:ptrMode="both" /> </LinearLayout>


    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    
    /**
     * MainActivity---利用第三方下拉刷新控件实现
     * @author seabear
     *
     */
    public class MainActivity extends Activity {
    
    	private PullToRefreshListView mPullToRefreshListView;
    	private List<String> mArrayList = new ArrayList<String>();
    	private ArrayAdapter<String> mArrayAdapter;
    	private int mNums = 0;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		mPullToRefreshListView = (PullToRefreshListView)this.findViewById(R.id.pull_refresh_list);
    		mArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mArrayList);
    		mPullToRefreshListView.setAdapter(mArrayAdapter);
    		
    		mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
    
    			@Override
    			public void onRefresh(PullToRefreshBase<ListView> refreshView) {
    				// TODO Auto-generated method stub
    				new GetDataTask().execute();
    			}
    			
    		});
    		
    		
    	}
    	private class GetDataTask extends AsyncTask<Void, Void, String>
    	{
    
    		@Override
    		protected String doInBackground(Void... params) {
    			// Simulates a background job.
    			mNums++;
    			try {
    				Thread.sleep(2000);
    			} catch (InterruptedException e) {
    			}
    			return "第" + String.valueOf(mNums) + "行";
    		}
    
    		@Override
    		protected void onPostExecute(String result) {
    			
    			mArrayList.add(result);
    			
    			mArrayAdapter.notifyDataSetChanged();
    
    			// Call onRefreshComplete when the list has been refreshed.
    			mPullToRefreshListView.onRefreshComplete();
    
    			super.onPostExecute(result);
    		}
    		
    	}
    }
    



  • 相关阅读:
    IE6碰到的兼容问题小结
    Ueditor的asp版本,上传测试无问题
    localStorage存取json数据
    asp版 QQ登录 oauth2.0
    phoneGap API调用摄像头并上传图片
    ASP.NET Ajax 控件之应用一(CollapsiblePanelExtender控件的使用)
    web网页配色
    DispatcherTimer与Dispatcher小小应用
    小说ICommand
    例说INotifyPropertyChanged接口
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6919835.html
Copyright © 2011-2022 走看看