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

正文內(nèi)容

基于android平臺(tái)的天氣預(yù)報(bào)軟件的設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁(yè)

2024-09-14 20:05本頁(yè)面
  

【正文】 SAX,全稱 Simple API for XML,既是一種接口,也是一種軟件包。 SAX 不同于 DOM 解析,它逐行掃描文檔,一邊掃描一邊解析。 DOM 即 Document Object Model,它把 XML 文檔的內(nèi)容實(shí)現(xiàn)為一個(gè)對(duì)象模型,簡(jiǎn)單的說(shuō)就是應(yīng)用程序如何訪問(wèn) XML文檔, W3C 的 DOMLevel1 定義了如何實(shí)現(xiàn)屬性、方法、事件等 [9]。 Pull 解析技術(shù)是第三方開發(fā)的開源技術(shù),它同樣可以應(yīng)用于 JavaSE 開發(fā)。 對(duì)于 Android 的移動(dòng)設(shè)備而言,因?yàn)樵O(shè)備的資源比較寶貴,內(nèi)存是有限的,所以我們需要選擇適合的技術(shù)來(lái)解析 XML,這樣有利于提高訪問(wèn)的速度。當(dāng) XML文件較小時(shí),我們可以選 DOM,因?yàn)樗?jiǎn)單、直觀。 XML文件較大時(shí),選擇 SAX 技術(shù)是比較合理的。這樣對(duì)于有限的 Android 內(nèi)存更有效,而且 Android 提供了一種傳統(tǒng)的SAX 使用方法以及一個(gè)便捷的 SAX 包裝器。 PULL 解析并未像 SAX 解析那樣監(jiān)聽元素的結(jié)束,而是在開始處完成了大部分處理。對(duì)于 XML文檔較大但只需要文檔的一部分時(shí), PULL解析器則是更為有效的方法。它基于JavaScript( Standard ECMA262 3rd Edition December 1999)的一個(gè)子集 [10]。這 些特性使 JSON 成為理想的數(shù)據(jù)交換語(yǔ)言。 JSON 和 XML 的可讀性可謂不相上下,一邊是簡(jiǎn)易的語(yǔ)法,一邊是規(guī)范的標(biāo)簽形式,很難分出勝負(fù)。不過(guò) JSON 在 Javascript 主場(chǎng)作戰(zhàn),可以存儲(chǔ) Javascript 復(fù)合對(duì)象,有著 xml 不可比擬的優(yōu)勢(shì)。無(wú)工具的情況下,相信熟練的開發(fā)人員一樣能很快的寫出想要的 XML 文檔和JSON 字符串,不過(guò), XML文檔要多很多結(jié)構(gòu)上的字符。例如:(tagName),但是這樣是要在預(yù)先知道文檔結(jié)構(gòu)的情況下使用,無(wú)法進(jìn)行通用的封裝 [11]。這個(gè)可以通過(guò)遞歸來(lái)實(shí)現(xiàn),不過(guò)解析出來(lái)的數(shù)據(jù)仍舊是形式各異,往往也 不能滿足預(yù)先的要求。 JSON 也同樣如此。如果你是純粹的前臺(tái)開發(fā)人員,一定會(huì)非常喜歡 JSON。而如果不知道 JSON 的結(jié)構(gòu)而去解析 JSON 的話,那簡(jiǎn)直是噩夢(mèng)。但是這樣也不影響眾多前臺(tái)開發(fā)人員選擇 JSON。當(dāng)然不是使用這個(gè)字符串,這樣仍舊是噩夢(mèng)。 本軟件使用 JsonObject 和 JsonArray實(shí)現(xiàn)針對(duì) Json串的解析,這里我們解析的是中國(guó)天氣網(wǎng)的天氣。 JSONObjectjson=newJSONObject(info).getJSONObject(weatherinfo)。 ImageView imageView=null。 //建立一個(gè)緩存天氣的文件 editor = getSharedPreferences(STORE_WEATHER, MODE_PRIVATE).edit()。 tempText=(TextView)findViewById()。 (city, info)。 // (date)。 String str = (date)。 (TAG, str)。 (date_y, str)。 info += ~ +(temp2)。 (info)。 //得到天氣 info= (weather)。 (info)。 //天氣圖標(biāo) // info= (weather)。 weather_icon = getWeatherBitMapResource(info)。 (img_title1, weather_icon)。 validTime = validTime + 5*60*60*1000。 //保 存 ()。 } 除了上述之外, JSON 和 XML 還有另外一個(gè)很大的區(qū)別在于有效數(shù)據(jù)率。 本章小結(jié) 本章簡(jiǎn)要的描述了一下本軟件的主要功能都包括什么和工程的結(jié)構(gòu)等等,詳細(xì)的介紹了解析的 幾種方式 的優(yōu)缺點(diǎn),其中 有 XML、 SAX、 DOM 和拼接字符串 15 的 JSON 解析。在段代碼中我們運(yùn)用到了 ListView集合和 Adapter(適配器)來(lái)實(shí)現(xiàn)的頁(yè)卡滑動(dòng)。 private LocalActivityManager manager。 ViewPager pager = new ViewPager(this)。 manager = new LocalActivityManager(this, true)。 list = new ArrayListView()。 (getMyView(1, new Intent(this, )))。 MyViewPagerAdapter adapter = new MyViewPagerAdapter(list)。 } public View getMyView(String id,Intent intent){ return (id, intent).getDecorView()。用這些軟件組成了登陸界面并且運(yùn)用OnClickListener(),進(jìn)行監(jiān)聽,創(chuàng)建監(jiān)聽事件并且判斷你注冊(cè)的賬戶密碼是否正確,如果正確則顯示登陸成功。其存儲(chǔ)位置在 /data/data/包名 /shared_prefs 目錄下。實(shí)現(xiàn) SharedPreferences 存儲(chǔ)的步驟如下: Context 獲取 SharedPreferences 對(duì)象 。 Editor 對(duì)象存儲(chǔ) keyvalue 鍵值對(duì)數(shù)據(jù)。 mit()方法提交數(shù)據(jù)。 如圖 52 所示,功能性代碼如下: 圖 52 登陸界面 public class LoginActivity extends Activity { private EditText userName, password。 private TextView mRegister。 private SharedPreferences sp。 17 // 隱藏標(biāo)題欄 ()。 // 獲得實(shí)例對(duì)象 sp = (userInfo, )。 password = (EditText) findViewById()。 auto_login = (CheckBox) findViewById()。 if(getIntent().getBooleanExtra(isfirst, false)){ (this, 您 是 第 一 次 運(yùn) 行 , 請(qǐng) 點(diǎn) 擊 注 冊(cè) , ).show()。 startActivity(intent)。 finish()。 // 判斷記住密碼多選框的狀態(tài) if ((ISCHECK, false)) { // 設(shè)置默認(rèn)是記錄密碼狀態(tài) (true)。 ((PASSWORD, ))。 // 跳轉(zhuǎn)界面 Intent intent = new Intent(, )。 (TAG, 跳轉(zhuǎn)到主界面 )。 } 18 } // 監(jiān)聽記住密碼多選框按鈕事件 (new OnCheckedChangeListener() { Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (()) { (記住密碼已選中 )。 } else { (記住密碼沒有選中 )。 } } })。 ().putBoolean(AUTO_ISCHECK, true).mit()。 ().putBoolean(AUTO_ISCHECK, false).mit()。 } public void loginclick(View v){ userNameValue = ().toString()。 SharedPreferences sp = getSharedPreferences(userinfo, MODE_PRIVATE)。 } else { (, 登陸成功 , ).show()。 (USER_NAME, userNameValue)。 ()。 startActivity(intent)。 finish()。用到的技術(shù)有使用選項(xiàng)菜單 OptionsMenu實(shí)現(xiàn)功能點(diǎn)排布。 20 //緩存天氣的文件 public static final String STORE_WEATHER=store_weather。 //當(dāng)前 Activity的根布局 private LinearLayout rootLayout。 //設(shè)置窗口特征 ,為不顯示標(biāo)題 requestWindowFeature()。 setContentView()。 //實(shí)例化菜單加載器 mi = new MenuInflater(this)。 File file= new File(dirPath)。 //如果文件不存在說(shuō)明是第一次動(dòng)行 if(!()) { //設(shè)置默認(rèn)的壁紙 editor = getSharedPreferences(WALLPAPER_FILE, MODE_PRIVATE).edit()。 ()。 } else { //設(shè)置壁紙為文件中保存的 SharedPreferences sp= getSharedPreferences(WALLPAPER_FILE, MODE_PRIVATE)。 } //得到保存的城市天氣 SharedPreferences sp = getSharedPreferences( ,MODE_PRIVATE)。 21 if( cityCode!= null amp。 ().length()!=0) { SharedPreferences shared = getSharedPreferences(STORE_WEATHER, MODE_PRIVATE)。 //得到天氣緩沖文件中的有效期 long vaildTime = (validTime, currentTime)。 else setWeatherSituation(cityCode)。 (isFirstRun, isFirstRun)。 } } Override //得到設(shè)置頁(yè)面的回退 protected void onActivityResult(int requestCode, int resultCode, Intent data) { //得到城市的編碼 SharedPreferences sp = getSharedPreferences(, MODE_PRIVATE)。 if(cityCode!=nullamp。().length()!=0) { if(data!=nullamp。(updateWeather, false)) { //從網(wǎng)上更新新的天氣 setWeatherSituation(cityCode)。 setWeatherSituation(shared)。 } } //添加菜單項(xiàng) public boolean onCreateOptionsMenu(Menu menu) { 22 //加載菜單資源,實(shí)例化菜單 (, menu)。 SubMenu subMenu = (2).getSubMenu()。 switch((wellpaper, )) { case : item = (0)。 break。 (true)。 case : item = (2)。 break。 (true)。 } return true。 //得到城市的編碼 SharedPreferences sp = getSharedPreferences(, MODE_PRIVATE)。 startActivityForResult(intent, 0)。 case : //得到設(shè)置的城市碼 String cityCode = (code, )。amp。 } break。 (wellpaper, )。 (true)。 case : ()。 ()。 break。 (wellpaper, )。 (true)。 case : ()。 ()。 break。 } return
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1