天天看點

Android 中文 API (29) —— CompoundButton[通俗易懂]

大家好,又見面了,我是你們的朋友全棧君。

前言

  本章内容是android.widget.CompoundButton,翻譯來自德羅德,再次感謝德羅德 !期待你一起參與Android API 的中文翻譯,聯系我[email protected]

聲明

  歡迎轉載,但請保留文章原始出處:)

    部落格園:http://www.cnblogs.com/

    Android中文翻譯組:http://www.cnblogs.com/over140/

正文

  一、結構

public abstract class CompoundButton extends Button implements Checkable

    java.lang.Object

android.view.View

android.widget.TextView

android.widget.Button

            android.widget.CompoundButton

  二、概述

一個帶有選中/未選中狀态的按鈕。當按鈕按下或點中時自動改變狀态。

  三、公共方法

public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

在子視圖的建構時分派一個輔助事件。(譯者注:通過源碼可以看出,視圖建構時設定其選中狀态。)

參數

event 事件

傳回值

如果事件全部完成傳回True。

public boolean isChecked ()

(譯者注:是否選中)

public void onRestoreInstanceState (Parcelable state)

允許視圖重新應用以前通過onSaveInstanceState()生成代表内部的狀态。這個函數決不調用一個空的狀态。

參數

state 傳回以前調用onSaveInstanceState()儲存下來的狀态。

public Parcelable onSaveInstanceState ()

允許視圖生成一個代表内部的狀态,以後可用于建立一個與之相同的新的執行個體。這種狀态應該隻包含非持久或以後不能夠重建的資訊。例如,你決不存儲你目前在螢幕上的位置,因為這會在視圖的層面上重新計算放置一個新的執行個體。

你可以存儲到這裡的一些例子:一個文本框中目前光标的位置(但通常不是文字本身,文字通常儲存在内容提供者(content provider)或其他持久的儲存中),一個清單視圖中的目前選中項。

傳回值

傳回一個包含視圖目前狀态的Parcelable對象,或沒有什麼狀态儲存時傳回null。預設實作傳回null。

public boolean performClick ()

如果視圖定義了OnClickListener監聽器,調用此方法來執行。

傳回值

定義了的OnClickListener被調用傳回True,否則傳回False

public void setButtonDrawable (Drawable d)

給按鈕背景設定一個可繪制對象(如:圖像)

參數

d 用作背景的可繪制對象(如:圖像)

public void setButtonDrawable (int resid)

通過資源Id給按鈕背景設定一個圖像

參數

resid 作為背景圖像的資源id

public void setChecked (boolean checked)

改變按鈕的選中狀态

參數

checked true選中,false非選中

public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)

注冊一個在按鈕狀态發生改變時執行的回調函數

參數

listener 當選中狀态改變時調用的函數

public void toggle ()

改變選中狀态為目前狀态的逆狀态

  四、受保護方法

protected void drawableStateChanged ()

在視圖狀态的變化影響到所顯示可繪制的狀态時調用這個方法。

確定在重載時中調用父類方法

protected int[] onCreateDrawableState (int extraSpace)

為目前視圖生成新的可繪圖區狀态。這個方式當緩存的圖像繪圖區狀态确定失效時通過視圖系統調用。你可以使用getDrawableState()方法重新取得目前的狀态。

參數

extraSpace 如果為非零,這是你應該傳回的數組在你可以存放你的狀态的額外條目的數量。

傳回值

傳回一個記錄着視圖中目前繪圖區狀态的數組

protected void onDraw (Canvas canvas)

實作你自己的繪制。

參數

canvas 在畫布上繪制背景

protected boolean verifyDrawable (Drawable who)

如果你的視圖子類顯示他自己的可視化對象,他将要重寫此方法并且為了顯示可繪制傳回true。此操作允許進行繪制時有動畫效果。

  确認當重寫從方法時,需調用父類相應方法。

參數

who 需判斷的可繪制對象(Drawable)。如果是你要顯示的對象,傳回True,否則傳回調用父類的結果。

傳回值

boolean

如果可繪制對象(

Drawable

)已經在視圖中顯示,傳回

True

否則傳回

false

。并且此處不允許使用動畫。

結束

  Android2.3即将釋出,翻譯組也将迅速跟進,已經翻譯或正在翻譯的将保持原有版本,新開始翻譯的将直接從新版本開始。

釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/139663.html原文連結:https://javaforall.cn