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

正文內(nèi)容

基于android平臺的天氣預報軟件的設(shè)計與實現(xiàn)(編輯修改稿)

2024-07-25 01:00 本頁面
 

【文章內(nèi)容簡介】 比較合理的。雖然代碼量有些大,但是它不需要將所有的XML文件加載到內(nèi)存中。這樣對于有限的Android內(nèi)存更有效,而且Android提供了一種傳統(tǒng)的SAX使用方法以及一個便捷的SAX包裝器。使用Android.util.Xml類,從示例中可以看出,會比使用 SAX來得簡單。PULL解析并未像SAX解析那樣監(jiān)聽元素的結(jié)束,而是在開始處完成了大部分處理。這有利于提早讀取XML文件,可以極大的減少解析時間,這種優(yōu)化對于連接速度較漫的移動設(shè)備而言尤為重要。對于XML文檔較大但只需要文檔的一部分時,PULL解析器則是更為有效的方法。 JSON解析JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA262 3rd Edition December 1999)的一個子集[10]。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C,C++,C,Java,JavaScript,Perl,Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(網(wǎng)絡(luò)傳輸速度快)。JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規(guī)范的標簽形式,很難分出勝負。XML天生有很好的擴展性,JSON當然也有,沒有什么是XML可以擴展而JSON卻不能擴展的。不過JSON在Javascript主場作戰(zhàn),可以存儲Javascript復合對象,有著xml不可比擬的優(yōu)勢。XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發(fā)人員一樣能很快的寫出想要的XML文檔和JSON字符串,不過,XML文檔要多很多結(jié)構(gòu)上的字符。 XML的解析方式有兩種一是通過文檔模型解析,也就是通過父標簽索引出一組標記。例如:(tagName),但是這樣是要在預先知道文檔結(jié)構(gòu)的情況下使用,無法進行通用的封裝[11]。另外一種方法是遍歷節(jié)點(document 以及childNodes)。這個可以通過遞歸來實現(xiàn),不過解析出來的數(shù)據(jù)仍舊是形式各異,往往也不能滿足預先的要求。凡是這樣可擴展的結(jié)構(gòu)數(shù)據(jù)解析起來一定都很困難。JSON也同樣如此。如果預先知道JSON結(jié)構(gòu)的情況下,使用JSON進行數(shù)據(jù)傳遞簡直是太美妙了,可以寫出很實用美觀可讀性強的代碼。如果你是純粹的前臺開發(fā)人員,一定會非常喜歡JSON。但是如果你是一個應用開發(fā)人員,就不是那么喜歡了,畢竟XML才是真正的結(jié)構(gòu)化標記語言,用于進行數(shù)據(jù)傳遞。而如果不知道JSON的結(jié)構(gòu)而去解析JSON的話,那簡直是噩夢。費時費力不說,代碼也會變得冗余拖沓,得到的結(jié)果也不盡人意。但是這樣也不影響眾多前臺開發(fā)人員選擇JSON。()就可以看到JSON的字符串結(jié)構(gòu)。當然不是使用這個字符串,這樣仍舊是噩夢。常用JSON的人看到這個字符串之后,就對JSON的結(jié)構(gòu)很明了了,就更容易的操作JSON[12]。本軟件使用JsonObject和JsonArray實現(xiàn)針對Json串的解析,這里我們解析的是中國天氣網(wǎng)的天氣。在天氣預報程序設(shè)計中JSON解析代碼如下:String info =new WebAccessTools(context).getWebContent(())。 JSONObjectjson=newJSONObject(info).getJSONObject(weatherinfo)。 TextView tempText = null。 ImageView imageView=null。 int weather_icon = 0。 //建立一個緩存天氣的文件 editor = getSharedPreferences(STORE_WEATHER, MODE_PRIVATE).edit()。 //得到城市 info=(city)。 tempText=(TextView)findViewById()。 (info)。 (city, info)。// //得到陽歷日期 //獲取現(xiàn)在的時間 Date date = new Date()。// (date)。 //針對時間進行規(guī)范化輸出SimpleDateFormat sdf = new SimpleDateFormat(yyyy年MM月dd日 HH:mm:ss)。 String str = (date)。 tempText=(TextView)findViewById()。 (TAG, str)。 (str)。 (date_y, str)。 //得到溫度 info = (temp1)。 info += ~ +(temp2)。 tempText=(TextView)findViewById()。 (info)。 (temp1, info)。 //得到天氣 info= (weather)。 tempText=(TextView)findViewById()。 (info)。 (weather1, info)。 //天氣圖標// info= (weather)。 imageView=(ImageView)findViewById()。 weather_icon = getWeatherBitMapResource(info)。 (weather_icon)。 (img_title1, weather_icon)。 //設(shè)置一個有效日期為5小時 long validTime = ()。 validTime = validTime + 5*60*60*1000。 (validTime, validTime)。 //保存 ()。 } catch (JSONException e) { ()。 }除了上述之外,JSON和XML還有另外一個很大的區(qū)別在于有效數(shù)據(jù)率。JSON作為數(shù)據(jù)包格式傳輸?shù)臅r候具有更高的效率,這是因為JSON不像XML那樣需要有嚴格的閉合標簽,這就讓有效數(shù)據(jù)量與總數(shù)據(jù)包比大大提升,從而減少同等數(shù)據(jù)流量的情況下,網(wǎng)絡(luò)的傳輸壓力。本章簡要的描述了一下本軟件的主要功能都包括什么和工程的結(jié)構(gòu)等等,詳細的介紹了解析的幾種方式的優(yōu)缺點,其中有XML、SAX、DOM和拼接字符串的JSON解析。第5章 程序代碼設(shè)計 幫助界面本軟件在開始后時候運用到了ViewPager這個類,來實現(xiàn)頁卡的幫助界面。在段代碼中我們運用到了ListView集合和Adapter(適配器)來實現(xiàn)的頁卡滑動。如圖51所示,功能性代碼如下:圖51幫助界面public class ViewPagerAct extends Activity { private ListView list。 private LocalActivityManager manager。 protected void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 ViewPager pager = new ViewPager(this)。 setContentView(pager)。 manager = new LocalActivityManager(this, true)。 (savedInstanceState)。 list = new ArrayListView()。 (getMyView(0, new Intent(this, )))。 (getMyView(1, new Intent(this, )))。 (getMyView(2, new Intent(this, )))。 MyViewPagerAdapter adapter = new MyViewPagerAdapter(list)。 (adapter)。 } public View getMyView(String id,Intent intent){ return (id, intent).getDecorView()。 }} 登陸界面登陸界面中包含的控件有Button(按鈕),EditText(文本輸入框),CheckBox(復選框),TextView(文本顯示)。用這些軟件組成了登陸界面并且運用OnClickListener(),進行監(jiān)聽,創(chuàng)建監(jiān)聽事件并且判斷你注冊的賬戶密碼是否正確,如果正確則顯示登陸成功。里面用到了SharedPreferences(用戶偏好)來儲存密碼,其實SharedPreferences(用戶偏好)也是一種輕型的數(shù)據(jù)存儲方式,它的本質(zhì)是基于XML文件存儲keyvalue鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/包名/shared_prefs目錄下。SharedPreferences對象本身只能獲取數(shù)據(jù)而不支持存儲和修改,存儲修改是通過Editor對象實現(xiàn)。實現(xiàn)SharedPreferences存儲的步驟如下:  。  ()方法獲取Editor對象?! ?。通過key值取value值。()方法提交數(shù)據(jù)。并且用到了Intent傳值等方法。如圖52所示,功能性代碼如下:圖 52登陸界面public class LoginActivity extends Activity { private EditText userName, password。 private CheckBox rem_pw, auto_login。 private TextView mRegister。 private String userNameValue, passwordValue。 private SharedPreferences sp。 @Override public void onCreate(Bundle savedInstanceState) { (savedInstanceState)。 // 隱藏標題欄 ()。 setContentView()。 // 獲得實例對象 sp = (userInfo, )。 userName = (EditText) findViewById()。 password = (EditText) findViewById()。 rem_pw = (CheckBox) findViewById()。 auto_login = (CheckBox) findViewById()。 mRegister = (TextView) findViewById()。 if(getIntent().getBooleanExtra(isfirst, false)){ (this, 您是第一次運行,請點擊注冊, ).show()。 } (new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(, )。 startActivity(intent)。 (TAG, 跳轉(zhuǎn)到注冊界面)。 finish()。 } })。 // 判斷記住密碼多選框的狀態(tài) if ((ISCHECK, false)) { // 設(shè)置默認是記錄密碼狀態(tài) (true)。 ((USER_NAME, ))。 ((PASSWORD, ))。 // 判斷自動登陸多選框狀態(tài) if ((AUTO_ISCHECK, false)) { // 設(shè)置默認是自動登錄狀態(tài) (true)。 // 跳轉(zhuǎn)界面 Intent intent = new Intent(, )。 (intent)。 (TAG, 跳轉(zhuǎn)到主界面)。 finish()。 } } // 監(jiān)聽記住密碼多選框按鈕事件 (new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (()) { (記住密碼已選中)。 ().putBoolean(ISCHECK, true).mit()。 } else { (記住密碼沒有選中)。 ().putBoolean(ISCHECK, false).mit()。 } } })。 // 監(jiān)聽自動登錄多選框事件 (new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (()) { (自動登錄已選中)。 ().putBoolean(AUTO_ISCHECK, true).mit()。 } else { (自動登錄沒有選中)。 ().putBoolean(AUTO_ISCHECK, false).mit()。
點擊復制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1