Android控件第6类——杂项控件
?
1、Toast
Toast用于顯示提示信息。
Toast不會(huì)獲得焦點(diǎn),沒法關(guān)閉,過(guò)段時(shí)間會(huì)自動(dòng)消失。
使用方法:Toast.makeText獲得Toast,并設(shè)置相關(guān)屬性。調(diào)用Toast對(duì)象的show方法顯示。
默認(rèn)情況,Toast只彈出一段話,如果想要更加復(fù)雜的Toast,可以調(diào)用Toast對(duì)象的setView方法。
?
2、Notification
用來(lái)發(fā)送手機(jī)狀態(tài)欄消息。手機(jī)的狀態(tài)欄位于屏幕最上方。
使用方法:
-
- 構(gòu)造一個(gè)Notification.Builder,并為Builder對(duì)象設(shè)置相關(guān)屬性
- 然后調(diào)用Builder對(duì)象的build方法,就可以構(gòu)造出一個(gè)Notification對(duì)象。
- 調(diào)用getSystemService(NOTIFICATION_SERVICE)獲取NotificationManager對(duì)象,并使用NotificationManager對(duì)象的notify方法發(fā)送Notification。
- 說(shuō)明:getSystemService方法和NOTIFICATION_SERVICE常量都是Context類中聲明的。
常用方法:
-
- setAutoCancel:點(diǎn)擊消息后,狀態(tài)欄將刪除通知
- setDefaults:設(shè)置通知的LED燈、音樂(lè)、震動(dòng)等
- 參數(shù):
- Notification.DEFAULT_SOUNT
- Notification.DEFAULT_VIBRATE
- Notification.DEFAULT_LIGHTS
- Notification.ALL
- 參數(shù):
- setSound:設(shè)置通知的音樂(lè)
- setLights:設(shè)置LED等
- setVibrate:設(shè)置震動(dòng)
- setTicker:狀態(tài)欄上通知的提示信息
- setSmallIcon:設(shè)置通知圖標(biāo)
- setContentTitle:設(shè)置內(nèi)容標(biāo)題
- setContentText:設(shè)置內(nèi)容文本
- setContentIntent:如果設(shè)置了contentIntent,在點(diǎn)擊這個(gè)通知時(shí),將會(huì)啟動(dòng)Intent對(duì)應(yīng)的組件。這個(gè)方法對(duì)應(yīng)的參數(shù)為PendingIntent
PendingIntent
-
- Intent將會(huì)直接調(diào)用并啟動(dòng)對(duì)應(yīng)的組件,但是對(duì)于像Notification這樣的場(chǎng)景,并不是在產(chǎn)生消息的時(shí)候直接啟動(dòng)組件,而是在用戶對(duì)消息進(jìn)行某種操作的時(shí)候,才會(huì)啟動(dòng)組件,這個(gè)時(shí)候就需要使用PendingIntent。
- 使用PendingIntent.getActivities來(lái)構(gòu)造PendingIntent,其參數(shù)中將要使用Intent對(duì)象。
?
在測(cè)試的時(shí)候,在Activity中通過(guò)getIntent獲取到的Intent對(duì)象中,總是獲取不到想要的信息。
在網(wǎng)上搜索發(fā)現(xiàn),如果使用了相同的Intent,在創(chuàng)建PendingIntent的時(shí)候需要設(shè)置Flags參數(shù)為PendingIntent.FLAG_CANCEL_CURRENT,如下所示。
PendingIntent.getActivity(AtyNotification.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)?
如果不是相同的Intent,Flags參數(shù)可不設(shè)置為PendingIntent.FLAG_CANCEL_CURRENT
Intent intent2 = new Intent(Intent.ACTION_VIEW);intent2.setData(Uri.parse("tel:10086"));notification.setContentIntent(PendingIntent.getActivity(AtyNotification.this, 0, intent2, 0));?
?
3、CalendarView,繼承自FrameLayout
用于顯示和選擇日期。
使用setOnDateChangeListener監(jiān)聽日期變化。
?
4、DatePicker,繼承自FrameLayout
供用戶選擇日期。
DatePicker沒有setOnDateChangedListener方法,而是在DatePicker對(duì)象的init方法中,將OnDateChangedListener對(duì)象作為參數(shù)傳遞進(jìn)去。
?
5、TimePicker,繼承自FrameLayout
供用戶選擇時(shí)間。
TimePicker與DatePicker不同,它使用setOnTimeChangedListener來(lái)傳遞時(shí)間改變的事件監(jiān)聽器。
?
6、NumberPicker,繼承自LinearLayout
數(shù)字選擇器。
通過(guò)setMinValue和setMaxValue設(shè)置最大值和最小值;通過(guò)setValue設(shè)置當(dāng)前值。
通過(guò)setOnValueChangedListener傳遞數(shù)值改變的事件監(jiān)聽器。
7、SearchView,繼承自LinearLayoutCompat
搜索框。
常用方法:
-
- setIconifiedByDefault(boolean iconified):設(shè)置該搜索框默認(rèn)是否自動(dòng)縮小為圖標(biāo)
- setSubmitButtonEnabled(boolean enabled):設(shè)置是否顯示搜索框按鈕
- setQueryHint(CharSwquence hint):設(shè)置搜索框內(nèi)默認(rèn)顯示的提示文本
- setOnQueryTextListener(SearchView.OnQueryTextListener):為搜索框設(shè)置事件監(jiān)聽器
?
8、ScrollView,HorizontalScrollView,繼承自FrameLayout
垂直滾動(dòng)體和水平滾動(dòng)條,這是兩個(gè)不同的控件,分別負(fù)責(zé)在垂直方向和水平方向的滾動(dòng)條。
滾動(dòng)條內(nèi)部只能放置一個(gè)控件。
?
9、TabHost,繼承自FrameLayout,已不推薦使用
與TabHost一起使用的類包括:TabWidget(標(biāo)簽條)和TabSpec(選項(xiàng)卡的一個(gè)頁(yè)簽)。
當(dāng)使用TabActivity來(lái)實(shí)現(xiàn)TabHost的時(shí)候,它的layout文件應(yīng)該包含以下內(nèi)容:
-
- TabHost控件的id需要設(shè)置為:@android:id/tabhost
- TabWidget控件的id需要設(shè)置為:@android:id/tabs
- TabWidget需要包含一個(gè)FrameLayout,id為:@android:id/tabcontent
向TabHost中添加頁(yè)簽的方式:
-
- 生成TabSpec對(duì)象:TabSpec spec1= tabHost.newTabSpec("tabSpec1").setIndicator("標(biāo)題1").setContent(R.id.tabSpec1);
- 將TabSpec對(duì)象加入到tabHost中:tabHost.addTab(spec1);
現(xiàn)在已經(jīng)不推薦使用TabActivity,推薦使用Fragement代替TabActivity。
?
轉(zhuǎn)載于:https://www.cnblogs.com/huanyou/p/5273076.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Android控件第6类——杂项控件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu中 不同JDK版本之间的切换
- 下一篇: 以己为壑