freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于android平臺的3g手機(jī)氣象預(yù)報軟件設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-07-12 10:39 本頁面
 

【文章內(nèi)容簡介】 文件 數(shù)據(jù)提供者 數(shù)據(jù)提供者 ForecastProvider 繼承 ContentProvider,是在應(yīng)用程序間共享第五章 程序開發(fā) 數(shù)據(jù)的一種接口機(jī)制。應(yīng)用程序在不同的進(jìn)程中運(yùn)行,因此,數(shù)據(jù)和文件在不同的應(yīng)用程序之間是不能夠直接進(jìn)行訪問的。而 CotentProvider 為程序員提供了較高級的數(shù)據(jù)共享方法,應(yīng)用程序可以指定需要共享的數(shù)據(jù),而其他應(yīng)用程序則可以在不知數(shù)據(jù)來源、路徑的情況下,對共享數(shù)據(jù)進(jìn)行查詢、添加、刪除和更新等操作。 在介紹 ForecastProvider 的 核 心 代 碼 前 , 首 先 了 解 一 下(當(dāng)前天氣信息的類 )和 (未來天氣信息的類)。 (1) 的部分代碼: public class WidgetEntity { private ArrayListForecastEntity details = new ArrayListForecastEntity()。 //ForecastEntity對象 private Integer id。 //編號 private Integer updateMilis。 //更新 頻率 private String city。 //城市 private String postalCode。 //城市標(biāo)記 private Long forecastDate。 //預(yù)報時間 private String condition。 //天氣情況 private Integer tempF。 //華氏溫度 private Integer tempC。 //攝氏溫度 private String humidity。 //濕度 private String icon。 //天氣圖標(biāo) private String windCondition。 //風(fēng)力 風(fēng)向 private Long lastUpdateTime。 //最后更新時間 private Integer isConfigured。 //是否 已 設(shè)置 ...... } 從代碼中可以看出,除 ForecastEntity 的對象 details, WidgetEntity 類中 有以上公有靜態(tài)屬性 id、 updateMilis 、 updateMilis、 postalCode、forecastDate、 condition、 tempF、 tempC、 humidity、 icon、 windCondition、lastUpdateTime、 isConfigured, 完全對應(yīng)數(shù)據(jù)庫中 weather_widget 的表。 (2) 的部分代碼: public class ForecastEntity { private Integer id。 //編號 private String dayOfWeek。 //星期 private Integer low。 //最低溫度 private Integer hight。 //最高溫度 private String icon。 //天氣圖標(biāo) private String condition。 //天氣情況 第五章 程序開發(fā) private Integer widgetId。 //組件 id 從代碼中可以看出, WidgetEntity 類中 有以上公有靜態(tài)屬性 id、dayOfWeek、 low、 hight、 icon、 condition、 widgetId, 完全對應(yīng)數(shù)據(jù)庫中 weather_forcast 的表。 在創(chuàng)建 ForecastProvider 時,首先需要使用數(shù)據(jù)庫、文件系統(tǒng)或網(wǎng)絡(luò)實(shí) 現(xiàn)底層存儲功能,這里我們采用數(shù)據(jù)庫建立了數(shù)據(jù)庫設(shè)計(jì)中的兩張表,從而實(shí)現(xiàn)了底層存儲功能。然后在繼承 ContentProvider 的類中實(shí)現(xiàn)基本數(shù)據(jù)操作的接口函數(shù),包括添加、刪除、查找和更新等功能。下面就核心代碼進(jìn)行分析。 (1) 創(chuàng) 建 數(shù) 據(jù) 庫 : DatabaseHelper 類繼承 SQLiteOpenHelper ,SQLiteOpenHelper 這 個 類 可 以 輔 助 建 立 、 更 新 和 打 開 數(shù) 據(jù) 庫 。DatabaseHelper 在建立數(shù)據(jù)庫時,同時建立了兩個數(shù)據(jù)庫表 weather_widget和 weather_forcast,并對保存配置信 息的表進(jìn)行了初始化。具體代碼如下所示: private static class DatabaseHelper extends SQLiteOpenHelper { //數(shù)據(jù)庫名稱 private static final String DATABASE_NAME = 。 //數(shù)據(jù)庫版本 private static final int DATABASE_VERSION = 2。 //構(gòu)造方法,重載父類構(gòu)造 public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION)。 } public void onCreate(SQLiteDatabase db) { //創(chuàng)建 weather_widget表 public void onCreate(SQLiteDatabase db) { //創(chuàng)建 weather_widget表 (CREATE TABLE + TABLE_WIDGET + ( ......)。 //創(chuàng)建 weather_forecast表 (CREATE TABLE + TABLE_FORECAST + ( ......)。 } } //重寫 onUpgrade()方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { ...... } } } 第五章 程序開發(fā) (2) URI 設(shè)置: ContentProvider 可以提供多個數(shù)據(jù)集,調(diào)用者使用 URI(通用資源標(biāo)識符)對不同的數(shù)據(jù)集的數(shù)據(jù)進(jìn)行操作。 URI 用來地位任何遠(yuǎn)程或本地的 可 用 資 源 。 ContentProvider 使 用 的 URI 語法結(jié)構(gòu)URI 進(jìn)行設(shè)置。代碼如下: public static class WeatherWidgets implements BaseColumns { //繼承 BaseColumns可以提供自 動生成的 ID //聲明 CONTENT_URI public static final Uri CONTENT_URI = ( + AUTHORITY + /widgets)。 public static final String FORECAST_END = forecasts。 //指操作多條數(shù)據(jù) public static final String CONTENT_TYPE = 。 //指操作單條數(shù)據(jù) public static final String CONTENT_ITEM_TYPE = 。 } (3) 查詢功能:首先我們先了解一下 SQLiteQueryBuilder 的 query()方法。query ( SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit) ,參數(shù)說明如表 : 參 數(shù) 說 明 SQLiteDatabase db 要查詢的數(shù)據(jù)庫實(shí)例 String[] projectionIn 是一個字符串?dāng)?shù)組,里邊的每一項(xiàng)代表了需要返回的列名 String selection 相當(dāng)于 SQL語句中的 where部分 String[] selectionArgs 是一個字符串?dāng)?shù)組,里邊的每一項(xiàng)依次替代在第三個參數(shù) 中出現(xiàn)的問號( ?) String groupBy 相當(dāng)于 SQL語句當(dāng)中的 groupby部分 String having 相當(dāng)于 SQL語句當(dāng)中的 having部分 String sortOrder 描述是怎么進(jìn)行排序 String limit 相當(dāng)于 SQL當(dāng)中的 limit部分,控制返回的數(shù)據(jù)的個數(shù) 查詢功能的核心代碼如下: public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { //getReadableDatabase()這個函數(shù)會數(shù)據(jù)庫是否存在、版本號和是否可讀等情況, 第五章 程序開發(fā) //決定在返回數(shù)據(jù)庫對象前,是否需要數(shù)據(jù)庫。返回一個可讀的數(shù)據(jù)庫對象。 SQLiteDatabase db = ()。 //聲明了一個 SQLiteQueryBuilder對象,該對象利用傳入的參數(shù)生成一個完整的 //sqlite查詢語句,還可以完成查詢工作并返回結(jié)果集( Cursor)。 SQLiteQueryBuilder qb = new SQLiteQueryBuilder()。 String limit = null。 //通過一個 switch語句,完成了通過 uri種類的辨別來生成不通的SQLiteQueryBuilder對象的工作。 switch ((uri)) { case WIDGETS: { (TABLE_WIDGET)。 break。 } case WIDGETS_ID: { String appWidgetId = ().get(1)。 (TABLE_WIDGET)。 ( + = + appWidgetId)。 break。 } case WIDGETS_FORECASTS: { // Pick all the forecasts for given widget, sorted by date and // importance //獲得 appWidgetId String appWidgetId = ().get(1)。 //為該 SQLiteQueryBuilder對象設(shè)置它查詢工作將針對的表 (TABLE_FORECAST)。 //qb的 where條件 ( + = + appWidgetId)。 //按照 sortOrder = + ASC。 break。 }case FORECASTS: { (TABLE_FORECAST)。 break。 } case FORECASTS_ID: { String forecastId = ().get(1)。 (TABLE_FORECAST)。 ( + = + forecastId)。 break。 } } return (db, projection, selection, selectionArgs, null, null,sortOrder, limit)。 第五章 程序開發(fā) } (4) 添加、 刪除、更新功能 由于核心代碼類似,此處不一一贅述。 添加功能: public Uri insert(Uri uri, ContentValues values) {} 刪除功能: public int delete(Uri uri, String selection, String[] selectionArgs) {} 更新功能: public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {} (5) 類型匹配:增刪改查通過 switch 判斷,進(jìn)行不同的操作,因而還需 要對關(guān)鍵字進(jìn)行類型匹配。核心代碼如下: /*getType()函數(shù)用來返回指定 URI的 MIME數(shù)據(jù)類型 * CONTENT_TYPE表示 URI是多條數(shù)據(jù) * CONTENT_ITEM_TYPE表示是單條數(shù)據(jù)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1