Android 中文 API (29) —— CompoundButton

來源:互聯網
上載者:User

前言

  本章內容是android.widget.CompoundButton,翻譯來自德羅德,再次感謝德羅德 !期待你一起參與Android API 的中文翻譯,聯絡我over140@gmail.com。

 

聲明

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

    部落格園: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即將發布,翻譯組也將迅速跟進,已經翻譯或正在翻譯的將保持原有版本,新開始翻譯的將直接從新版本開始。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.