安卓學習心得

2021-08-29 15:46:13 字數 3392 閱讀 8188

android學習心得

093380117 計算機應用(1) 張峰

1.關於activity

1. 在乙個activity中使用多個view

如果把activity看作mvc中的control?它負責管理ui和接受事件(包括使用者的輸入),雖然說乙個activity通常對應乙個螢幕,但事實上,我們是可以只用乙個activity管理多個不同的view來實現簡單的邏輯。

首先,我們增加乙個新的資源描述layout/second.xml。

除了乙個「hello中國」以外,增加乙個按鈕可以返回前乙個介面。然後,在**中我們要為hellotwo增加兩個方法,setviewonecommand和setviewtwocommand,分別處理一下在不同介面時,從資源裡載入元件並為元件繫結乙個事件處理器最後,我們需要在oncreate的時候,也就是啟動後的main介面上設定一下按鈕事件處理器。

2. 還是回到正道上,多個activity之間的跳轉

android中提供乙個叫intent的類來實現螢幕之間的跳轉,按文件的說法,似乎他們也建議採用這種方法,intent的用法比較複雜,現在我先看看它最簡單的用法。

這裡的跳轉功能用intent來操作,它的最簡單用法就是用函式setclass()設定跳轉前後兩個activity類的例項,然後呼叫activity自己的startactivity(intent)即可。最後一句finish()表示將當前activity關掉(如果不關掉會如何?你可以自己試一下看效果,事實上有時我們是不需要關掉當前activity的)。

然後,我們同樣弄乙個activity類hellothreeb,**與前面的差不多,只是將setclass的兩個引數反一下,這樣就可以簡單地實現在兩個activity介面中來回切換的功能了。

2.關於 intent的使用

intent分為兩大類,顯性的(explicit )和隱性的(implicit)。一般來說,intent要定位事件的目的地,無外乎需要以下幾個資訊:

1.種類(category),比如我們常見的 launcher_category 就是表示這是一類應用程式。

2.型別(type),在前面的例子中沒用過,表示資料的型別,這是隱性intent定位目標的重要依據。

3.元件(component),前面的例子中用的是setclass,不過也可以用setcomponent來設定intent跳轉的前後兩個類例項。

4.附加資料(extras),在contenturi之外還可以附加一些資訊,它是bundle型別的物件。

其實,如果是在乙個應用內部,這種隱性的intent實在有點彆扭,個人覺得,這種松藕合的實現方法,只適用於那些較大的系統或者多個不同的應用之間的呼叫,可手機上又有什麼「較大」的系統呢?無非是可以與不同**的多個應用之間方便地互操作而已,那麼會是什麼樣的場景呢?比如,給qq好友傳送gmail郵件,用googlemap查詢qq好友所在的位置?

看上去挺不錯的。

關於這個contentprovider,其實還有話說,它主要是的那些看似資料庫操作的方法我們都沒真正去實現呢。不過今天就到這裡了,等下回再去研究吧。

3.關於listactivity

準備乙個list物件並借助adapter就可以構造出乙個列表。過載onlistitemclick方法可以響應選擇事件,利用第乙個引數可以訪問到這個listview例項以得到選中的條目資訊。這裡有一點要說明的,就是如果更簡單的話,其實連那個setcontentview都可以不要了,android也會自動幫我們構造出乙個全屏的列表。

但是本例中我們需要乙個textview來顯示選中的條目,所以我們需要乙個layout.mainb描述一下這個列表視窗。

這裡需要注意的是那個listview的id,是系統自定義的android:list,不是我們隨便取的,否則系統會說找不到它想要的listview了。然後,在這個listview之外,我們又增加了乙個textview,用來顯示選中的條目。

再來說說這裡用到的arrayadapter,它的建構函式中第二個引數是乙個資源id,arrayadapter的api文件中說是要求用乙個包含textview的layout檔案,平台用它來顯示每個選擇條目的樣式,這裡的取值是r.layout.list_row,所以,我們還有乙個list_row.

xml檔案來描述這個布局,相當簡單。

從arrayadapter上溯到baseadapter,發現還有幾個同源的adapter也應該可以使用,象******adapter和cursoradapter,還是做個例子來實驗一下吧。

然後,在hellotwob中的oncreate函式中,修改**,有幾個不同:items的元素是hashmap例項,這是一點變化,然後建構函式除了要求items以外,還要求提供乙個string來說明用hash表中的哪個字段顯示在列表中,而後是乙個資源id的陣列。

因為單純的cursoradapter是抽象類,所以我用的是它的子類******cursoradapter,很好理解,先用contentresolver查詢通訊簿得到乙個游標,然後告訴******cursoradapter要用其中的作為顯示項來構造出乙個adapter即可。

4.關於dialog

注意到android.app包下除了dialog(可用於製作複雜的對話方塊)以外,還包括了幾個系統定義好的對話方塊類,如datepickerdialog、timepickerdialog及alertdialog。

其中alertdialog我上回用過一次,基本上就那樣子了,今天看看另外兩個對話方塊的使用吧。

很簡單的,無非是需要乙個ondatesetlistener介面的實現而已,在它裡面的dateset方法中就可以得到選擇的日期了。而timepickerdialog與datepickerdialog使用如出一轍。

看看另乙個progressdialog的用法吧,這個類與alertdialog一樣包含了多個static的方法,所以使用起來是非常方便的。比如說,如果我們需要用它來表示乙個長時間的操作。

5.關於service和notification

大略地看了一下android.app下的service類,覺得它與activity非常相似,只是要注意幾個地方:

1.生命週期,service的從oncreate()->onstart(int,bundle)->ondestroy()顯得更為簡單。但是它的onstart是帶引數的,第乙個id可用來標識這個service,第二個引數顯示是用來傳遞資料的了。

比較activity,傳遞資料的bundle是在oncreate就帶進入的。

2.service的啟動由context.startservice開始,其實activity或者service都是context的派生類。

結束於context.stopservice()或者它自己的stopself()。

3.。就是這個方法context.bindservice(),被繫結的service要求是已經oncreate了但可以沒有onstart。

在service類中有個抽象方法getbinder()可以得到這個ibinder物件。關於這方面的細節,以後再看,這裡只做個記錄罷。

卓頂精文唐河學習心得

回眸拾貝積澱收穫 唐河一小參觀學習心得體會 饒良中心校劉志彬 尊敬的各位領導 各位同仁 大家好!昨天,我們在張銳局長的帶領下,來到了教學管理先進 辦學富有特色的唐河一小和張店中心小學進行實地參觀學習。這次學習,首先給我的是視覺上的巨大衝擊,然後是觀念上和心靈上的巨大震撼。儘管時間短暫,但兩所學校濃厚...

安防知識學習心得

近年來,銀行業金融機構犯罪案件頻發,特別是暴力犯罪凸顯且居高不下。金融犯罪形式的層出不窮與犯罪分子手段的殘忍,對銀行的安全保衛與內控工作都提出了新的挑戰。面對日益嚴峻的銀行安保形勢,下午我們學習銀行安全防範知識。通過學習讓我受益匪淺,感觸頗多。凡事預則立,不預則廢 正確合理的安保措施是保證資金與人員...

盾安之道學習心得

有幸聆聽 學習盾安的創始人姚新義主席親自講解的 盾安之道 多年前剛入盾安,在參加的工作會及每年年總總結大會上也會聽到姚主席給我們講很多關於做人做事的道理,本人深受鼓舞與影響,那個時候姚主席也已經是我崇拜的心中偶像。如今重歸盾安,因為地球是圓的,在那裡分開,有緣人總會在這頭相遇 如今重歸盾安,因為我是...