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

正文內(nèi)容

基于android平臺的3g氣象軟件畢業(yè)論文(編輯修改稿)

2025-04-03 08:29 本頁面
 

【文章內(nèi)容簡介】 文 件 說 明 anim 漸變透明度動畫效果 畫面轉(zhuǎn)換位置移動動畫效果(從左至右) 畫面轉(zhuǎn)換位置移動動畫效果(從右 至左) 畫面轉(zhuǎn)換位置移動動畫效果(從上至下) 畫面轉(zhuǎn)換位置移動動畫效果(從上至下) 畫面轉(zhuǎn)換位置移動動畫效果(從上至下) 畫面轉(zhuǎn)換位置移動動畫效果(從上至下) 畫面轉(zhuǎn)換位置移動動畫效果(從上至下) drawable 這個文件夾里是工程里所用的圖片,如有表示天氣狀況、數(shù) 字等,此處不贅述。 layout 設(shè)置城市、天氣更新頻率的布局 “顯示頁面”的布局 “詳細顯示”頁面上邊的顯示當(dāng)前天氣的 布局 “詳細顯示”頁面下邊的顯示未來天氣的 布局 values 保存顏色的 XML 文件 保存字符串的 XML的文件 xml AppWidget的屬性文件 數(shù)據(jù) 提供者 數(shù)據(jù) 提供者 ForecastProvider 繼承 ContentProvider,是在應(yīng)用程序間共享第五章 程序開發(fā) 數(shù)據(jù)的一種接口機制。應(yīng)用程序在不 同 的進程中運行,因此,數(shù)據(jù)和文件在不 同的 應(yīng)用程序之間是不能夠直接進行訪問的。而 CotentProvider 為程序員提供了較高級的數(shù)據(jù)共享方法,應(yīng)用程序可以指定需要共享的數(shù)據(jù),而其他應(yīng)用程序則可以在不知數(shù)據(jù)來源、路徑的情況下,對共享數(shù)據(jù)進行查詢、添加、刪除和更新等操作。 在 介 紹 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。 //城市標記 private Long forecastDate。 //預(yù)報時間 private String condition。 //天氣情況 private Integer tempF。 //華氏溫度 private Integer tempC。 //攝氏溫度 private String humidity。 //濕度 private String icon。 //天氣圖標 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。 //天氣圖標 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ò)實現(xiàn)底層存儲功能,這里我們采用數(shù)據(jù)庫 建立了數(shù)據(jù)庫設(shè)計中的兩張表,從而 實現(xiàn) 了底層存儲功能。然后在繼承 ContentProvider 的類中實現(xiàn)基本數(shù)據(jù)操作的接口函數(shù),包括添加、刪除、查找和更新等功能。 下面 就核心代碼進行分析 。 (1) 創(chuàng) 建 數(shù) 據(jù) 庫 : DatabaseHelper 類繼承 SQLiteOpenHelper ,SQLiteOpenHelper 這 個 類 可 以 輔 助 建 立 、 更 新 和 打 開 數(shù) 據(jù) 庫 。DatabaseHelper 在建立數(shù)據(jù)庫時,同時建立了兩個數(shù)據(jù)庫表 weather_widget和 weather_forcast,并對保存配置信息的表進行了初始化。具體 代碼如下所示: 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( 通用資源標識符)對不同的數(shù)據(jù)集的數(shù)據(jù)進行操作。 URI 用來地位任何遠程或本地的 可 用 資 源 。 ContentProvider 使 用 的 URI 語法結(jié)構(gòu) 因此,我們就需要先來對URI 進行設(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ù)庫實例 String[] projectionIn 是一個字符串?dāng)?shù)組,里邊的每一項代表了需要返回的列名 String selection 相當(dāng)于 SQL語句中的 where部分 String[] selectionArgs 是一個字符串?dāng)?shù)組,里邊的每一項依次替代在第三個參數(shù) 中出現(xiàn)的問號( ?) String groupBy 相當(dāng)于 SQL語句當(dāng)中的 groupby部分 String having 相當(dāng)于 SQL語句當(dāng)中的 having部分 String sortOrder 描述是怎么進行排序 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) 添加、
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1