Android CompoundButton
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
android.widget.Buttonandroid.widget.CompoundButton
RadioGroup不是CompoundButton的子類,所以不能直接使用CompoundButton的回調(diào)函數(shù),而只能
用RadioGroup.OnCheckedChangeListener()
而 CheckBox是CompoundButton的子類,可以直接使用CompoundButton的回調(diào)函數(shù),可以直接
使用CompoundButton的CompoundButton.OnCheckedChangeListener()
一個帶有選中/未選中狀態(tài)的按鈕。當(dāng)按鈕按下或點中時自動改變狀態(tài)。
三、公共方法
public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)
在子視圖的構(gòu)建時分派一個輔助事件。(譯者注:通過源碼可以看出,視圖構(gòu)建時設(shè)置其選中狀態(tài)。)
參數(shù)
event 事件
返回值
如果事件全部完成返回True。
public boolean isChecked ()
(譯者注:是否選中)
public void onRestoreInstanceState (Parcelable state)
允許視圖重新應(yīng)用以前通過onSaveInstanceState()生成代表內(nèi)部的狀態(tài)。這個函數(shù)決不調(diào)用一個空的狀態(tài)。
參數(shù)
state 返回以前調(diào)用onSaveInstanceState()保存下來的狀態(tài)。
public Parcelable onSaveInstanceState ()
允許視圖生成一個代表內(nèi)部的狀態(tài),以后可用于創(chuàng)建一個與之相同的新的實例。這種狀態(tài)應(yīng)該只包含非持久或以后不能夠重建的信息。例如,你決不存儲你當(dāng)前在屏幕上的位置,因為這會在視圖的層面上重新計算放置一個新的實例。
你可以存儲到這里的一些例子:一個文本框中當(dāng)前光標(biāo)的位置(但通常不是文字本身,文字通常保存在內(nèi)容提供者(content provider)或其他持久的儲存中),一個列表視圖中的當(dāng)前選中項。
返回值
返回一個包含視圖當(dāng)前狀態(tài)的Parcelable對象,或沒有什么狀態(tài)保存時返回null。默認實現(xiàn)返回null。
public boolean performClick ()
如果視圖定義了OnClickListener監(jiān)聽器,調(diào)用此方法來執(zhí)行。
返回值
定義了的OnClickListener被調(diào)用返回True,否則返回False
public void setButtonDrawable (Drawable d)
給按鈕背景設(shè)置一個可繪制對象(如:圖像)
參數(shù)
d 用作背景的可繪制對象(如:圖像)
public void setButtonDrawable (int resid)
通過資源Id給按鈕背景設(shè)置一個圖像
參數(shù)
resid 作為背景圖像的資源id
public void setChecked (boolean checked)
改變按鈕的選中狀態(tài)
參數(shù)
checked true選中,false非選中
public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)
注冊一個在按鈕狀態(tài)發(fā)生改變時執(zhí)行的回調(diào)函數(shù)
參數(shù)
listener 當(dāng)選中狀態(tài)改變時調(diào)用的函數(shù)
public void toggle ()
改變選中狀態(tài)為當(dāng)前狀態(tài)的逆狀態(tài)
四、受保護方法
protected void drawableStateChanged ()
在視圖狀態(tài)的變化影響到所顯示可繪制的狀態(tài)時調(diào)用這個方法。
確保在重載時中調(diào)用父類方法
protected int[] onCreateDrawableState (int extraSpace)
為當(dāng)前視圖生成新的可繪圖區(qū)狀態(tài)。這個方式當(dāng)緩存的圖像繪圖區(qū)狀態(tài)確定失效時通過視圖系統(tǒng)調(diào)用。你可以使用getDrawableState()方法重新取得當(dāng)前的狀態(tài)。
參數(shù)
extraSpace 如果為非零,這是你應(yīng)該返回的數(shù)組在你可以存放你的狀態(tài)的額外條目的數(shù)量。
返回值
返回一個記錄著視圖中當(dāng)前繪圖區(qū)狀態(tài)的數(shù)組
protected void onDraw (Canvas canvas)
實現(xiàn)你自己的繪制。
參數(shù)
canvas 在畫布上繪制背景
protected boolean verifyDrawable (Drawable who)
如果你的視圖子類顯示他自己的可視化對象,他將要重寫此方法并且為了顯示可繪制返回true。此操作允許進行繪制時有動畫效果。
確認當(dāng)重寫從方法時,需調(diào)用父類相應(yīng)方法。
參數(shù)
who 需判斷的可繪制對象(Drawable)。如果是你要顯示的對象,返回True,否則返回調(diào)用父類的結(jié)果。
返回值
boolean 如果可繪制對象( Drawable )已經(jīng)在視圖中顯示,返回 True 否則返回 false 。并且此處不允許使用動畫。轉(zhuǎn)載于:https://my.oschina.net/amigos/blog/63010
總結(jié)
以上是生活随笔為你收集整理的Android CompoundButton的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML页面日历插件
- 下一篇: 挖金子修订版开发进行中