同步介面卡模式(一)

2021-06-26 10:32:56 字數 2547 閱讀 2251

gmail通過同步介面卡(ayncadapter)實現上述功能,遺憾的是,儘管同步介面卡是android提供的最好特性之一,但是卻缺乏相應文件。

這一部分先說客戶端的離線實現方式。

1. 實現上面的ui效果,資料來源為空時,顯示暫無資料,雖然這樣的效果實現方式有多種,這裡還是提供一種高大上的方式,**如下:

listview.setemptyview(findviewbyid(r.id.kong));

2. listview中的資料從資料庫來,實現資料庫的**如下:

public class databasehelper extends sqliteopenhelper 

@override

public void oncreate(sqlitedatabase db)

@override

public void onupgrade(sqlitedatabase db, int oldversion, int newversion)

}

3.dao實現**:dao中目前實現了增和刪的操作,其關鍵**是使用

contentresolver操作內容提供者。dao其實可有可無,完全可以直接操作內容提供者。

public class tododao 

public static tododao getinstance()

public void addnewtodo(contentresolver contentresolver, todo todo, int flag)

public void deletetodo(contentresolver contentresolver, int id)

}

4. 內容提供者**

public class todocontentprovider extends contentprovider 

@override

public boolean oncreate()

@override

public cursor query(uri uri, string projection, string selection,

string selectionargs, string sortorder)

sqlitedatabase db = dbhelper.getreadabledatabase();

cursor c = qb.query(db, projection, selection, selectionargs, null,

null, sortorder);

// 在cursor返回給呼叫者之前,我們註冊了「 uri內容變動通知」,這樣cursor會監控 uri內容變化,當發現 uri內容改變時,cursor會自動更新資料。

c.setnotificationuri(getcontext().getcontentresolver(), uri);

return c;

}@override

public string gettype(uri uri)

}@override

public uri insert(uri uri, contentvalues values)

public uri builduri(uri uri, string id)

@override

public int delete(uri uri, string selection, string selectionargs)

@override

public int update(uri uri, contentvalues values, string selection,

string selectionargs)

public class statusflag

}

5. listview設定的adapter是cursoradapter

public class todoadapter extends cursoradapter 

@override

public view newview(context context, cursor cursor, viewgroup parent)

});view.settag( holder);

return view;

}@override

public void bindview(view view, context context, cursor cursor)

});}

static class holder

}

6. 其實也可以不用內容提供者,直接使用資料庫,這樣做的好處是,通過cursor可以直接更新資料,還有2023年google開發者大會的一篇《rest》的文章,可能不充分,再補充。

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...