Android常用的UI組件

  近來讀完《瘋狂Android講義》一書,將其中的案例都碼了一遍,很是感慨。很厚的一本書,就像一本字典,涵蓋了大部分的android基礎知識。現對裏面一些比較不錯的內容做出總結。本篇對書中android界面編程這章所涉及的常用UI組件做出總結,只做總結,不碼代碼。


第1組UI組件:佈局管理器:

所有佈局管理器都是ViewGroup的子類,都可作爲容器類使用,因其繼承View,所以可嵌套

五大布局:線性、表格、幀佈局、相對、網格、絕對佈局

         單位:邊邊:dp, 字體:sp


第2組UI組件:TextView及其子類

2.1文本框(TextView)與編輯框(EditView)的功能和用法

         TextView:不可編輯,

         EditView:可編輯

2.2 Button:點擊觸發一個onClick事件

         |--RadioButton:單選按鈕,通常與RadioGroup一起使用

         |--CheckBox:複選按鈕

         |--ToggleButton:狀態開關按鈕

         |--Switch:開關       

從功能上看,後3者很相似,它們都可以提供兩種狀態,其中ToggleButton、Switch通常用於切換程序中的某種狀態。

2.3 時鐘(AnalogClock 和 TextClock 的功能與用法)

TextClock:取代早起的DigitalClock組件,能以24/12 小時制來顯示時間,數字。

AnalogClock:繼承View組件,它重寫了View的OnDraw方法,它會在View上繪製模擬時鐘

2.4計時器(Chronometer):可用於倒計時

 

第3組UI組件:ImageView及其子類

ImageView繼承自View、主要功能用於顯示圖片。

         |--ImageButton:圖片按鈕

         |--QuickContactBadge:顯示關聯到特定聯繫人的圖片

         |--ZoomButton:代表”放大”、”縮小”兩個按鈕


第4組UI組件:AdapterView及子類

AdapterView:本身是一個抽象基類,繼承了ViewGroup,它的本質是容器。

         |--AbsListView

                   |--ListView

         |--AbsSpinner

                   |--Spinner

                   |--Gallery

         |--AdapterViewAnimator

 

4.1列表視圖(ListView)和ListActivity

ListView:常見組件,它以垂直列表的形式顯示所有列表項

生成方式有如下兩種:

         1、直接使用ListView進行創建

         2、讓Activity繼承ListActivity(相當於該Activity顯示的組件爲ListView)

一旦在程序中獲得了ListView之後,接下來就需要爲ListView設置它要顯示的列表項了。在這一點上,ListView顯示出AdapterView的特徵:通過setAdapter(Adapter)方法爲之提供Adapter,並由Adapter提供列表項即可。

ListView、GridView、Spinner、Gallery等AdapterView都只是容器,而Adapter負責提供每個   

”列表項”組件,AdapterView則負責採用合適的方式顯示這些列表。

4.2 Apdater接口及實現類

Adapter常用實現類:

1、ArrayAdapter:簡單、易用的Adapter,通常用於將數據或List集合的多個值包裝成多個列表項

2、SimpleAdapater:並不簡單、功能強大的Adapter,可用於將List集合的多個對象包裝成多個列表項

3、SimpleCursorAdapter:與SimpleAdapter基本相似,只是用於包裝Cursor提供的數據

4、BaseAdapter:通常用於被擴展。擴展BaseAdapter可以對各列表項進行最大限度的定製。以上三種Adapater皆繼承於它

 

4種Adapter實例:

1,ArrayAdapter

New ArrayAdapter(Context context, //Context:上下文,即所在的Activity
         int resource,     //Resource:佈局樣式,一般爲TextView
         int textViewResourceId);   //textViewResourceId:數據源,可爲自定義的String數據


2.  SimpleAdapter:最大難點在於有5個參數

new SimpleAdapter(Context context,

                       List<? extends Map<String, ?>> data, //集合中每個Map(String,Object)作爲列表選項

                      int resource,     //指定界面佈局的id

                       String[] from,   //該參數決定map對象中哪些key對應的value來生成列表項 

                       int[] to);       //該參數決定填充哪些組件

3.BaseAdapter,用於擴寫,需重如下4個方法

       1.getCount():該方法返回值用於控制Adapter會包含多少個列表項

       2.getItem(int position):該方法的返回值決定第position處的列表項的內容

       3.getItemId(int position):該方法的返回值決定第position處的列表項的ID

       4.getView(int position,ViewconverView,ViewGroup parent):該方法的返回值決定第position處的列項組件

上面4個方法最重要的是第1個和第4個

 

4.3 自動完成文本框(AutoCompleteTextView)的功能和用法

AutoCompleteTextView由Editext派生而出,實際上它也是一個編輯框,但它比普通編輯框多了一個功能:當用戶輸入一定字符之後,自動完成文本框會顯示一個下拉菜單,供用戶從中選擇。

 

4.4 網格視圖(GridView)的功能和用法

GridView用於在界面上按行、列分佈的方式來顯示多個組件。

與ListView有共同的父類:AdbListView

與ListView唯一的區別:ListView只顯示一列,它可以顯示多列


4.5 可展開的列表組件(ExpandableListView)

ExpandableListView是ListView的子類,它在普通ListView的基礎上進行了擴展,把應用中的列表項分爲機組,每組裏面又可包含多個列表項

 

4.6 Spinner的功能與用法,可加適配器

列表選擇框:相當於多選菜單

與Gallery都繼承了AbsPinner,區別:Spinner只供用戶選擇,Gallery允許用戶通過拖動來查看上一個、下一個列表項

 

4.7 AdapterViewFlipper的功能與用法

AdapterViewFlipper繼承了AdapterViewAnimator,它也會顯示adapter提供的多個View組件,但它每次只能顯示一個View組件,程序可通過showPrevious()、showNext()方法控制該組件的上一個、下一個組件

 

4.8 StackView的功能與用法

StackView也是AdapterViewAnimator的子類,它也用於顯示Adapter提供的一系列View。StackView將會以 “堆疊(Stack)”的方式來顯示多個列表項。

 

第5組UI組件:ProgressBar及其子類

ProgressBar也是一組重要的組件,ProgressBar本身代表了進度條組件,它還派生了兩個常用的組件:SeekBar 和RatingBar。

5.1 進度條(ProgressBar)的功能和用法

         進度條通常用於向用戶顯示某個耗時操作完成的百分比。進度條可以動態地顯示進度,因此避免長時間地執行某個耗時操作時,讓用戶感覺程序失去了響應,從而更好地提高用戶界面的友好性

 

5.2 拖動條(SeekBar)的功能與用法

         拖動條和進度條非常相似,只是進度條採用顏色填充來表明進度完成的程度,而拖動條則拖過滑塊的位置來標識數值------而且拖動條允許用戶拖動滑塊來改變值,因此拖動條通常用於對系統的某種數值進行調節,比如調節音量等。

         拖動條繼承於進度條。

 

5.3 星級評分條(RatingBar)的功能與用法

         星級評分條與拖動條有相同的父類:AbsSeekBar,因此它們十分相似:它們都允許用戶通過拖動來改變進度,RatingBar與SeekBar最大的區別在於:RatingBar通過星星來表示進度。

 

第6組UI組件:ViewAnimator及其子類

ViewAnimator是一個基類,它繼承了FrameLayout,因此它表示出FrameLayout可以將多個View”疊”在一起。ViewAnimator額外增加的功能正如它的名字所暗示的,可以在View切換時表現出動畫效果

         FrameLayout

                   |--ViewAnimator

                            |--ViewSwitcher

                                     |--ImageSwitcher

                                     |--TextSwitcher

                            |--ViewFlipper

圖像切換器(ImageView)與ImageView的功能有點相似,它們都可用於顯示圖片,區別在於ImageSwitcher的效果更炫,它可以指定圖片切換時的動畫效果。使用時需要創建一個ViewFactory對象

 

文本切換器(TextView)繼承了ViewSwitcher,因此它具有與ViewSwitcher相同的特徵:可以在切換View時使用動畫效果。與ImageView相似的是,使用TextSwitcher也徐璈設置一個ViewFactory。。與ImageSwitcher不同的是,TextSwitcher所需的ViewFactory的makeView()

方法必須返回一個TextView組件

 

ViewFlipper組件繼承了ViewAnimator,它可以調用addView(Viewv)添加多個組件,一旦向ViewFlipper中添加多個組件之後,ViewFlipper就可以使用動畫控制多個組件之間的切換效果。

ViewFlipper與前面介紹的AdapterViewFlipper有較大的相似性,它們可以控制組件切換的動畫效果。它們的區別是:ViewFlipper需要開發者通過addView(View v)添加多個View,而AdapterViewFlipper則只要傳入一個Adapter,Adapter將會負責提供多個View。因此,ViewFlipper可以指定與AdapterViewFlipper相同的xml屬性

 

第7組UI組件:對話框

     四種常用的對話框

1.AlertDialog:功能最豐富、實際應用最廣的對話框

2.ProgressDialog:進度條對話框、這個對話框只是對進度條的包裝

3.DatePickerDialog:日期選擇對話框,這個對話框只是對DatePicker的包裝

4.TimePickerDialog:時間選擇對話框,這個對話框只是對TimePicker的包裝。

         上面4中對話框功能最強、用法最靈活的就是AlertDIalog,因此應用也非常廣泛,而其他三種對話框都是它的子類。

 

7.1使用AlertDialog創建對話框

AlertDialog生成的對話框可分爲4個區域:

                                                                         圖片區    標題區    內容區    按鈕區

實現對話框的創建步驟:

       1.創建AlertDialog.Builder 對象

       2.調用AlertDialog.Builder的setTitle() 或 setCustomTitle()方法設置標題

       3.調用AlertDialog.builder 的 setIcon() 方法設置圖標

       4.調用AlertDialog.builder 的相關設置方法設置對話框內容

       5.調用AlertDialog.builder 的 setPositiveButton()、setNegativeButton() 或 setNeutralButton() 方法添加按鈕

       6.調用AlderDialog.Builder 的 create() 方法創建AldertDialog 對象,再調用AlertDialog 對象的 show() 方法將該對話框顯示出來


幾種不同風格的對話框:調用AlderDialog.Builder 相關方法

    1.實現列表項對話框:調用setItems()方法

    2.實現單選列表對話框:調用setSingleChoiceItems()

    3.實現多選列表項對話框:調用 setMultiChoiceItem()

    4.實現自定義列表項對話框:調用 setAdaper() 方法,

    5.實現自定義View對話框:調用setView()方法可以接收一個View組件,該View組件將會作爲對話框的內容,如做一個對話框的登陸界面等。

 

7.2 對話框風格的窗口

這種對話框本質上依然是窗口,只是把顯示窗口的Activity 的風格在manifest.xml裏面設置爲對話框風格

 

7.3 使用PopupWindow

         PopupWindow可以創建類似對話框風格的窗口,使用PopupWindow創建對話框風格的窗口只要如下兩步即可

調用PopupWindow 的構造器創建PopupWindow 對象

調用PopupWindow 的showAsDropDown(view v)將PopupWindow作爲v 組件的下拉組件顯示出來;或調用PopupWindow的showAtLocation()方法將PopupWindow在指定位置顯示出來

 

7.4使用DatePicker、TimePicker

DatePicker 和 TimePicker 的功能比較簡單,用法也簡單,只要如下兩步即可:

通過new關鍵字創建DatePicker、TimePicker實例,調用它們的show()方法即可將日期選擇對話框、時間選擇對話框顯示出來

         爲DatePicker、TimePicker綁定監聽器,這樣可以保證用戶通過DatePicker、TimePicker設置事件時觸發監聽器,從而通過監聽器來獲取獲取個戶設置的時間

 

7.5 使用ProgressDialog 創建進度對話框

         ProgressDialog代表了進度對話框,程序只要創建ProgressDialog 實例,併爲它顯示出來就是一個進度對話框。使用ProgressDialog創建進度對話框有如下兩種方式:

如果只是設置簡單的進度對話框,那麼調用ProgressDialog提供的靜態show()方法顯示對話框即可

創建ProgressDialog,然後調用方法對對話框的進度條進行設置,設置完成後將對話框顯示出來即可

 

 

第8組UI組件:菜單

8.1 選項菜單和子菜單(SubMenu)

選項菜單式安卓手機menu 鍵按下時顯示的。

         Menu

                   |--SubMenu:子菜單,可包含多menuItem(菜單項)         

                   |--ContextMenu:上下文菜單,可包含多個menuItem

不同的菜單具有如下特徵:

1.選項菜單:不支持勾選標記,並且只顯示菜單的”濃縮(condensed)”標題

2.子菜單(SubMenu):不支持菜單項圖標,不支持嵌套子菜單

3.上下文菜單(ContextMenu):不支持菜單快捷鍵和圖標

 

Menu接口定義了add()方法來添加菜單項;addSubMenu()來添加子菜單,多種重載方法的區別是:是否將子菜單、菜單項添加到制定菜單組中,是否使用資源中的字符串資源來設置標題。

添加菜單或子菜單的步驟如下:

  1.重寫Activity的onCreateOptionsMenu(Menu menu)方法,在該方法調用Menu對象的方法來添加菜單項或子菜單

  2.如果希望應用程序能相應菜單項的單擊事件,那麼重寫Activity的onOptionsItemSelected(MenuItem mi)方法即可,在裏面判斷id,分別作出響應動作

 

8.2 設置與菜單項關聯的Activity

         單擊某個菜單項、實現界面跳轉:

                                                   調用MenuItem的 setIntent(Intent intent)方法即可


8.3 上下文菜單

         Android用ContextMenu 來代表上下文菜單,爲Android應用開發上下文菜單與開發選項菜單的方法基本相似,因爲ContextMenu繼承了Menu,因此程序可用相同的方法爲它添加菜單項

         開發上下文菜單與開發選項菜單的區別在於:開發上下文菜單不是重寫CreateOptionsMenu( Menu menu )方法,而是重寫onCreateContextMenu(ContextMenumenu, View source, ContextMenu.ContextMenuInfo menuInfo )方法。其中source 代表觸發上下文菜單的組件

         開發上下文菜單的步驟如下

1. 重寫Activity的onCreateContextMenu( … )方發

2. 調用Activity 的 registerForContextMenu( View view)方法爲view組件註冊上下文菜單

3. 如果希望應用程序能爲菜單項提供相應,則可以重寫onContextItemSelect( MenuItem mi)方法,或爲其指定菜單項事件監聽器

4. 上下文菜單提供給了相關方法,可爲上下文菜單設置圖標、標題等。

5. 註冊後長按View組件會相應

 

8.4 使用XML文件定義菜單

         Android提供了兩種創建菜單的方式,一種是在java代碼中創建,一種是使用xml資源文件定義。建議用xml文件方式,減少代碼量

         菜單資源文件通常應該放在res\menu目錄下,菜單資源的根元素通常是<menu../>,

<menu../>無需指定任何屬性。<menu../>元素內可包含如下子元素:

<item../> 元素:定義菜單項

<group../>子元素:將多個<item../>定義的菜單項包裝成一個菜單組。它的子元素用戶控制整組的菜單行爲,如可選、單選等

位於<item../>下的<menu../>就是子菜單

         在程序中定義了菜單資源後,接下來還是重寫onCreateOptionsMenu(),onCreateContextMenu() 方法,在這些方法中調用MenuInflater對象的inflate方法加載指定資源對應的菜單即可

 

8.5 使用PopupMenu 創建彈出式菜單那

         PopupMenu代表彈出式菜單,它會在指定組件上彈出PopupMenu,在默認情況下,PopupMenu會顯示在該組件的下方或上方。PopupMenu可增加多個菜單項,並可爲菜單項添加子菜單。

         使用PopupMenu的步驟:

1.調用new PopupM( Context context, View anchor)創建下拉菜單,anchor代表要激發該彈出菜單的組件

2.調用MenuInflater 的inflate() 方法將菜單資源填充到PopupMenu中

3.調用PopupMenu 的show() 方法顯示彈出式菜單

 

 

第9組UI組件:使用活動條( ActionBar )

         活動條(ActionBar )是Android3.0的重要更新之一。ActionBar位於傳統標題欄的位置,也就是顯示在屏幕的頂部。ActionBar可顯示應用的圖標和Activity標題-----也就是前面應用程序頂部的內容。除此之外,ActionBar的右邊海可以顯示活動項( Action Item )

         歸納起來,ActionBar提供瞭如下功能:

1.顯示選項菜單的菜單項(將菜單項顯示成Action Item)

2.使用程序圖標作爲返回Home主屏或向上的導航操作

3.提供交互式View作爲Action View

4.提供基於Tab的導航方式,可用於切換多個Fragment

5.提供基於下拉的導航方式

 

9.1啓動ActionBar

actionBar.show():顯示ActionBar

actionBar.hide():隱藏ActionBar

我的電腦上用繼承AppCompatActivity,用v7的包去getSupportActionBar()才能顯示

 

9.2使用ActionBar顯示選項菜單項

         現在Android手機不再強制手機必須提供Menu按鍵,這樣可能導致用戶無法打開選項菜單。爲了解決這個問題,Android已經提供了ActionBar作爲解決方案,AndroidBar可以將選項菜單顯示成Action Item.

         從android3.0開始,MenuItem新增如下方法。

SeShowAsAction(int actionEnum):該方法設置是否將該菜單項顯示在ActionBar上,作爲Action Item

實際項目推薦使用xml資源文件來定義菜單,因此Android允許在xml菜單資源文件中爲<item../>指定如下屬性:

Android:showAsAction指定該按鈕顯示的位置,主要有以下幾種值可選:

  1.always表示永遠顯示在ActionBar中,如果屏幕空間不夠則無法顯示,

  2.ifRoom表示屏幕空間夠的情況下顯示在ActionBar中,不夠的話就顯示在overflow中never則表示永遠顯示在overflow中。

 

9.3 啓動程序圖標導航

         爲了將應用程序圖標編程可以點擊的圖標,可以調用AcionBar的如下方法:

setDisplayHomeAsUpEnabled(Boolean b):設置是否將應用程序圖標轉變成可點擊的圖標,並在圖標上添加一個向左的箭頭,箭頭的id爲:android.R.id.home:可實現點擊界面跳轉事件

 

 

9.4 添加Action View

ActionBar上除了可以顯示普通的Action Item之外,還可以顯示普通的UI組件。爲了在ActionBar上添加Action View,可以來用如下兩種方式:

  1.定義Action Item時使用android:actionViewClass屬性指定Action View的實現類

  2.定義Action Item時使用android:actionLayout屬性指定Action View對應的視圖資源

 

9.5 使用ActionBar實現Tab導航

         ActionBar的setNavigationMode(Action.NAVIGATION_MODE_TABS)方法設置使用Tab導航方式

         調用ActionBar的addTab()的方法添加多個Tab標籤,併爲每個Tab標籤添加事件監聽器

         在實際項目中爲了更好第展現Tab導航效果,ActionBar通常會與Fragment結合使用

         Android3.0以前要用v4包,v4還提供瞭如下配套類:

ViewPager:它是Fragment容器,可以同時管理多個Fragment,並允許多個Fragment切換時提供動畫效果

FragmentPagerAdapter:Adapter類,用於爲ViewPager提供多個Fragment。通用用於被擴展

PagerTitleStrip:與ViewPager結合使用,用於在Viewpager上顯示”導航條”。

 

9.6 使用ActionBar實現下拉式導航

         ActionBar除了可以提供Tab導航支持之外,還提供了下拉式(DropDowm)導航方式,下拉式導航的ActionBar在頂端生成下拉列表框,當用戶單擊某個列表項時,系統根據用戶單擊事件導航到指定Fragment。

         爲了使用ActionBar實現下拉式導航,按如下步驟進行即可。

  1. 調用ActionBar的actionBar.setNavigationMode(ActionBar.NABIGATION_MODE_LIST)方式實現下拉式列表的導航方式。

  2. 調用ActionBar的setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)方式添加多個列表項,併爲每個列表項設置事件監聽器。其中第一個參數Adapter負責提供多個列表項,第二個參數爲事件監聽器。

 

各種雜控件

1 使用Toast顯示提示信息框

簡單:Toast.make(Context,String,int).show();

自定義:調用taost.set(view)加入一個佈局View即可。

 

2 日曆視圖(CalendarView)組件的功能與用法

         CalendarView可用於顯示和選擇日期,用戶即可選擇一個日期,也可通過觸摸來滾動日曆。如果希望監控該組件的日期改變,則可調用CalendarView的setOnDateChangeListener()方法來爲此組件的點擊事件添加事件監聽器。星座查查看

 

3 日期、時間選擇器(DatePicker 和TimerPicker)的功能和用法

         DatePicker和 TimerPicker 是兩個比較易用的組件,它們都從FrameLayout派生而來,其中DatePicker 供用戶選擇日期;而TimerPicker 則供用戶選擇時間。

         DatePicker和 TimerPicker 在FrameLayout的基礎上提供了一些方法來獲取當前用戶所選擇的日期、時間;如果程序需要獲取用戶所選擇的日期、時間,則可通過爲DatePicker     添加OnDateChangeListener進行監聽,爲TimerPicker 添加OnTimerChangeListener進行監聽

         日期、時間: 2015年1月15日   ::          3時51分

 

4 數組選擇器(NumberPicker)的功能與用法

         數值選擇器用於讓用戶輸入數值,用戶既可以通過鍵盤輸入數值,也可以通過拖動來選擇數值。使用該組件常用如下三個方法

         SetMinValue(inti):設置該組件支持的最小值

         SetMaxValue(inti):設置該組件支持的最大值

         SetValue(inti):設置該組件的當前值

 

5 搜索框(SearchView)的功能與用法

         SearchView是搜索框組件,它可以讓用戶在文本框輸入文字,並允許通過監聽器監控用戶輸入,當用戶輸入完成後提交搜索,也可通過監聽器執行實際的搜索。

 

6 選項卡(TabHost)的功能和用法

TabHost是一種非常實用的組件,TabHost可以很方便地在窗口上放置多個標籤頁,每個標籤頁相當於獲得了一個與外部容器相同大小的組件擺放區域。通過這種方式,就可以在一個容器裏放置更多組件,例如許多手機系統都會在同一個窗口中定義多個標籤頁來顯示通話記錄,包括”未接來電”、”已接電話”、”呼出電話”等

與TabHost結合使用的還有如下組件

         TabWidget:代表選項卡的標題條

         TabSpec:代表選項卡的一個Tab頁面

TabHost僅僅是一個簡單的容器,它提供瞭如下兩個方法來創建、添加標籤頁

         NewTabSpec(String tag):創建選項卡

         AddTab(TabHost.TabSpectabSpec):添加選項卡

使用TabHost的一般步驟如下:

  1.在界面佈局文件中定義TabHost文件,併爲該組件定義該選項卡的內容

  2.Activity應該繼承TabActivity

  3.調用TabActivitygetTabHost()方法獲取TabHost對象

  4.通過TabHost對象來創建、添加選項卡

  5.若需要監控TabHost裏當前標籤頁的改變,則可以爲它設置TabHost.OnTabChangeListener監聽器

佈局文件定義時,TabHost容器需要結合兩個組件:TabWidgetFrameLayout,其中TabWidget用於定義標題卡的標題條;FrameLayout則用於“疊層”組合多個選項頁面。不僅如此,佈局文件中這三個組件的id也有要求:

         TabHostID應該爲@androidid/tabhost

         TabWidgetID應該爲@androidid/tabs

FrameLayoutID應該爲@androidid/tabcontent

標籤選項、標題圖標、內容

上面這三個ID並不是開發者最定義的,而是引用了Android系統已有的ID。

 

7 滾動視圖(ScrollView)的功能和用法

         ScrollView由FrameLayout派生而出,它就是一個用於爲普通組件添加滾動條的組件。ScrollView裏面最多隻能包含一個組件,而ScrollView的作用就是爲該組件添加垂直滾動條。通常爲一個Layout,裏面放多個textview就可以一直滾了

         在默認情況下,ScrollView只是爲其他組件添加垂直滾動條,如果應用需要添加水平滾動條,則可以借組與另一個滾動視圖:HorizontalScrollView 來是實現。ScrollView 與HorizontalScrollView的功能基本相似,只是前者添加垂直滾動條,後者添加水平滾動條

 

8 Notification 的功能與用法

         Notification是顯示在手機狀態欄的通知------手機狀態欄位於手機屏幕的最上方,那裏一般顯示手機當前的網絡狀態、時間等。Notification 所代表的是一種具有全局效果的通知,程序一般通過NotificationManager服務來發送Notification。

         NotificationManager是一個重要的系統服務,該API位於框架層,應用程序可通過NotificationManager向系統發送全局通知。

         Android爲Notification增加了Notification.Builder類,通過該類創建Notification對象,並未該對象設置標題、內容等。

         發送Notification很簡單,按如下步驟進行即可

1.調用getSystemService(NOTIFICATION_SERVICE)方法獲取系統的NotificationManager服務

2.通過構造器創建一個Notification對象

3.爲Notification設置各種屬性

4.通過NotificationManager發送Notification

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章