Android studioプロジェクトにサードパーティlibを導入


本論文ではhttps://github.com/chrisbanes/Android-PullToRefresh例として
参考:http://www.apkbus.com/android-125663-1-1.html
本人のパソコンのandroid studioは1.2です.1.1 ,sdk api22.
  • 正常に1つのproject(この例のprojectは“demo”と名付けます)wKioL1Vtga-AxpLCAAFJQgLJeHw467.jpg
  • を作成します
  • プロジェクトのPullToRefreshクラスライブラリの導入を開始
  • キーボードの「F 12」またはFile->new->import moduleを押すと、次の
  • になります.

    wKiom1VtgH3j1zf5AAGWu890C1o454.jpg
    wKiom1VtgRPiQlMeAAJ0Eivrae8684.jpg
    Android-pulltorefreshディレクトリのlibrary、extrasPullToRefreshListFragment、extrasPullToRefreshListFragmentの順にインポート
    完了後のディレクトリは次のとおりです.
    wKiom1VtgqDwL21sAAGg2rylZGY519.jpg
    b.demoの下のapp modulesにクラスライブラリ依存性を追加します.
    wKioL1VthNviOq41AAHLZI465WE788.jpg
    完成後の結果は上記の通りです.「OK」をクリックして完了します.
    3.コンパイルエラーの解決
    wKioL1VthYmgFcufAANImBV_-tQ811.jpg
    「F 12」を押し直し、app以外の3つのmodulesのmin sdkとtarget sdkバージョンをappと同じに変更します.
    wKiom1VthbCRbafAAAJMxHnLMTE954.jpg
    OK、コンパイルは正常に通過できます.
    4、テスト例を追加します.
    変更:layout/activity_main.xmlファイル
    <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="demo.zhezi.MainActivity"
        android:orientation="vertical" >
        <com.handmark.pulltorefresh.library.PullToRefreshListView
            android:id="@+id/listview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        </com.handmark.pulltorefresh.library.PullToRefreshListView>
    
    </LinearLayout>

    変更:MainActivity.JAvaファイル
    private PullToRefreshListView listView ;
    	private ArrayAdapter<String> arrayAdapter;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		listView = (PullToRefreshListView) findViewById(R.id.listview);
    		arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    		arrayAdapter.add("welcome");
    		arrayAdapter.add("welcome1");
    		arrayAdapter.add("welcome2");
    		arrayAdapter.add("welcome3");
    		listView.setAdapter(arrayAdapter);
    		listView.setOnRefreshListener(new OnRefreshListener<ListView>() {
    			@Override
    			public void onRefresh(PullToRefreshBase<ListView> refreshView) {		
    				new AsyncTask<Void, Void, Void>() {
    
    					@Override
    					protected Void doInBackground(Void... params) {
    						
    						try {
    							Thread.sleep(3000);
    						} catch (InterruptedException e) {
    							e.printStackTrace();
    						}
    						
    						return null;
    					}	
    					protected void onPostExecute(Void result) {
    						
    						arrayAdapter.addAll("Hello","   ");
    						
    						listView.onRefreshComplete();
    					};
    				}.execute();
    			}
    		});

    はい.展示効果は以下の通りです
    wKiom1Vth5iyfYnXAADTZ0WTGLc307.jpg
    wKioL1VtiTLDHZfoAAC0Z10OivI438.jpg