安卓每天練練(十五)改造BasicSyncAdapter

谷歌的官方示例BasicSyncAdapter是Android Studio工程,html

把它依樣畫葫蘆到Eclipse上,而後改形成我須要的樣式。java

看官方示例源碼的時候,看到EntryListActivity,名字長得好官方啊,查查android

EntryListActivity.java

package com.example.android.basicsyncadapter;
 
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
 
/**
 * Activity for holding EntryListFragment.
 */
public class EntryListActivity extends FragmentActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_entry_list);
    }
}

谷歌大神說這個傢伙就是作basicsyncadapter的時候建的Activity,不是什麼官方物體,是FragmentActivity的衍生物。數組

而另外一個ListAcitvity的東東就沒這麼簡單了,app

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.view.ContextThemeWrapper
         ↳ android.app.Activity
           ↳ android.app.ListActivity
雖然也是Activity的衍生物,但已經成爲了內建類,被別人拿去繼承了:...  extends ListActivity

Adapter 是什麼?(適配器)框架

Adapter自己只是一個接口,它派生了ListAdapter、SpinnerAdapter兩個子接口。ListAdapter爲AbsListView提供列表項、SpinnerAdapter爲AbsSpinnerAdapter提供列表項。幾乎全部的Adapter都繼承了BaseAdapter,而BaseAdapter同時實現了ListAdapter和SpinnerAdapter兩個接口,所以BSEAdapter及其子類能夠同時爲ABSListView和AbsSpinner提供列表項。ide

另外android-common-tookit 還爲adapter包設計了三類Adapter(繼承自官方的Adapter):CommonAdapter、CommonPagerAdapter、HolderAdapter。

Android是徹底遵循MVC模式設計的框架,Activity是Controller,layout是View 。由於layout有數種佈局,不少數據不能直接綁定上去,所以Android引入了Adapter機制,做爲複雜數據的展現的轉換載體,各類Adapter只是轉換的方式和能力不同。佈局

Adapter經常使用來管理數據,使數據綁定到控件變得更簡單靈活(好比列表的數據,網格的數據),爲容器提供子視圖,利用視圖的數據和元數據來構建每一個子視圖。fetch

(思路)好比這樣  bear  調用了 monkey  的方法a 可是a方法的參數改了 , 這樣bear 的代碼也得改;  在中間加一個adapter,叫abc 這樣bear 調用abc,abc調用monkey ;當monkey 的a方法發生改變時,不用改bear ,改abc就能夠了。 這樣能夠保證變化性集中到abc(我的以爲adapter很像支付寶t.t)ui

而其餘相似的經常使用實現類adapter,谷歌大神是怎麼去實現他們的呢?

BaseAdapter:一般用於被擴展,擴展BaseAdapter能夠對各項列表項進行最大限度的定製,extends Object

ArrayAdapter:簡單、易用的Adapter經常使用於將數組或者list集合的多個值包裝成多個列表項,extends BaseAdapter

SimpleAdapter:功能強大,用於將 list集合的多個對象包裝成多個列表項,extends BaseAdapter

SimpleCusorAdapter:與SimpleAdapter基本類似,只能用於包裝Cursor提供的數據extends ResourceCursorAdapter

今天要練的basicsyncadapter並非一個內建adapter,只是sample..(∩_∩)

BasicSyncAdapter
This sample demonstrates using SyncAdapter to fetch background data for an app that doesn't require a user-visible account type or 2-way synchronization. This sample periodically downloads the feed from the Android Developer Blog and caches the data in a content provider. At runtime, the cached feed data is displayed inside a ListView.
相關文章
相關標籤/搜索