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