Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android中文API(138) —— RemoteViews

Android中文API(138) —— RemoteViews

編輯:Android開發實例

前言

  本章內容android.widget.RemoteViews章節,版本為Android 4.0 r1,翻譯來自"xiaoQLu",含示例代碼。 

 

RemoteViews

譯者署名:xiaoQLu

譯者鏈接:http://www.cnblogs.com/xiaoQLu

版本:Android 4.0 r1

 

結構

繼承關系

public class RemoteViews extends Object implements Parcelable,LayoutInflater.Filter

        

java.lang.Object

android.widget.RemoteViews

 

類概述

一個描述了可以在其他進程中顯示的view層,它inflate於layout資源文件,並且這個類對提供一些基本操作修改view內容。

        

字段

public static final Creator<RemoteViews>

構造器Parcelable.Creator用來實例化RemoteViews類

 

內部類

  class RemoteViews.ActionException

  錯誤發生並發送異常時執行的動作

 

  @interface RemoteViews.RemoteView

  這個標記指明View的子類可以使用RemoteViews機制

 

構造函數

       public RemoteViews(String packageName, int layoutId)

         通過指定的布局文件新建一個RemoteViews對象。

        

public RemoteViews(Parcel parcel)

從一個parcel中讀取RemoteViews對象。

 

公共方法

public void addView (int viewId, RemoteViews nestedView)

         相當於當inflate指定的RemoteViews後調用addView(View)。它允許用戶構建”nested(內部)”RemoteViews。在某種情況下RemoteViews可以回收布局,使用removeAllViews(int)清除所有存在的子視圖。

參數

                            viewId      要加入子視圖的父ViewGroup的id

                            nestedView      描述子視圖的RemoteViews

 

public void apply(Context context, ViewGroup parent)

      Inflates視圖對象並且應用到所有的動作中。

      調用注意:這個方法可能有異常拋出。

參數

                  Context    默認使用的context

                  parent      生成視圖層將要填充的parent。此方法不會附加到層次結構。調用者應該在適當的時候處理。

            返回值

                   被inflated的視圖層

 

public RemoteViews clone ()

      創建並返回這個對象的復本。默認的實現返回一個淺拷貝:它重新創建這個類的實例並從原來的實例中復制字段值(包括類相關的)到這個新的實例。相比之下,深拷貝,還會遞歸復制嵌套類

            返回值

                  對象的復本。

 

public int describeContents ()

      描述對象在Parcelable中特定的編碼形式

             返回值

                   返回由Parcelable特定編碼形式的對象類型的位掩碼

                  

public int getLayoutId ()

(譯者注:返回Inflates視圖的id)

 

public String getPackage ()

 

 

public boolean onLoadClass (Class clazz)

         Hook允許LayoutInflater客戶端限制設置視圖,即允許被inflated。

參數

                   clazz                  用來inflated的視圖對象

            返回值

                   如果允許這個類inflated,返回true,否則返回false

 

public void reapply (Context context, View v)

         為視圖對象應用所有的動作

參數

                  v                要應用動作的視圖。這個應該是apply(Context, ViewGroup)調用的結果

 

public void removeAllViews (int viewId)

         相當於調用removeAllViews().

參數

                 viewed     要移除所有子視圖的父ViewGroup的id

 

public void setBitmap (int viewId, String methodName, Bitmap value)

為RemoteViews在視圖布局上調用一個帶有Bitmap值的方法。

參數

                 viewId      視圖id

                 methodName 要調用的方法名

value         要傳的值

        

public void setBoolean (int viewId, String methodName, boolean value)

為RemoteViews在視圖布局上調用一個帶有boolean值的方法。

參數

                 viewId      視圖id

                 methodName 要調用的方法名

value         要傳的值

        

public void setBundle (int viewId, String methodName, Bundle value)

為RemoteViews在視圖而已上調用一個帶有Bundle值方法

參數

                viewId      視圖id

                methodName 要調用的方法名

value         要傳的值

        

public void setByte (int viewId, String methodName, byte value)

為RemoteViews在視圖而已上調用一個帶有byte值方法

參數

                 viewId      視圖id

                 methodName 要調用的方法名

value         要傳的值

 

public void setChar (int viewId, String methodName, char value)

為RemoteViews在視圖而已上 調用一個帶有char值方法

參數

                            viewId      視圖id

                            methodName 要調用的方法名

value         要傳的值

 

public void setCharSequence (int viewId, String methodName, CharSequence value)

為RemoteViews在視圖而已上調用一個帶有CharSequence值方法

參數

                            viewId      視圖id

                            methodName 要調用的方法名

value         要傳的值

 

public void setChronometer (int viewId, long base, String format, boolean started)   

等同於調用Chronometer.setBase, Chronometer.setFormat,和Chronometer.start() 或者 Chronometer.stop().

參數

viewId      視圖id

base                   定時器應該從0:00開始讀取的時間,這個時間應該基於SystemClock.elapsedRealtime()

format      計時器的格式字符串,或者是簡單顯示時間的null值

started     True表示開始,false相反

 

public void setDisplayedChild (int viewId, int childIndex)

等同於調用setDisplayedChild(int)

參數

viewId      要調用setDisplayedChild(int)的視圖的id

 

public void setDouble (int viewId, String methodName, double value)

為RemoteViews在視圖而已上 調用一個帶有double值方法

參數

                 viewId      視圖id

                 methodName 要調用的方法名

value         要傳的值

 

public void setEmptyView (int viewId, int emptyViewId)       

相當於調用AdapterView.setEmptyView

參數

                  viewId      要設置空視圖的視圖id

                  emptyViewId   空視圖的id

 

public void setFloat (int viewId, String methodName, double value)     

為RemoteViews在視圖而已上調用一個帶有float值方法

參數

                viewId      視圖id

                methodName 要調用的方法名

value         要傳的值

 

public void setImageViewBitmap (int viewId, Bitmap bitmap)      

相當於調用ImageView.setImageBitmap

參數

                 viewId      視圖id

bitmap     用於繪制的新的Bitmap

 

public void setImageViewResource (int viewId, int srcId)     

相當於調用ImageView. setImageResource 

參數

                 viewId      視圖id

srcId                  用於繪制的新的資源id

 

public void setImageViewUri (int viewId, Uri uri)   

相當於調用ImageView. setImageURI 

參數

                 viewId      視圖id

uri             用於繪制的新的資源uri

 

public void setInt (int viewId, String methodName, int value)       

為RemoteViews在視圖而已上調用一個帶有int值方法

參數

                 viewId      視圖id

                 methodName 要調用的方法名

value         要傳的值

 

public void setIntent (int viewId, String methodName, Intent value)   

         (譯者注:為RemoteViews在視圖而已上調用一個帶有Intent值方法)

 

public void setLong (int viewId, String methodName, long value)

為RemoteViews在視圖而已上調用一個帶有long值方法

參數

                 viewId      視圖id

                methodName    要調用的方法名

value         要傳的值

 

public void setOnClickFillInIntent (int viewId, Intent fillInIntent)

當在widgets中使用集合(比如說ListView, StackView等等),在單獨的一個條目中設置PendingIntents是非常浪費的,並且是不被允許的。然而一個單獨的PendingIntents模板可以設置在集合裡,參見setPendingIntentTemplate(int, PendingIntent),並且一個給定條目的單獨的on-click的動作可以通過在條目上設置fillInIntent來區別。然後這個fillInIntent就和PendingIntent的實例結合在一起決定最終的被點擊執行的intent。規定如下:在PendingIntent實例裡,左邊為空白的任何區域,但由fillInIntent提供的,將被重寫,同時PendingIntent的結果將被使用。然後PendingIntent將被在fillInIntent中設置的有聯系的字段填充。參見fillIn(Intent, int)

參數

                 viewId      要設置fillInIntent視圖id

fillInIntent        要和父類的PendingIntent組合在一起的意圖,用來決定被viewid指定的視圖的on- click動作

 

public void setOnClickPendingIntent (int viewId, PendingIntent pendingIntent)

相當於調setOnClickListener(android.view.View.OnClickListener)啟動准備好的PendingIntent。當在集合中設置條目的on-click動作時(比如說:ListView, StackView等),這個方法不起作用。然而,[email protected] RemoteViews#setPendingIntentTemplate(int, PendingIntent)應該和RemoteViews#setOnClickFillInIntent(int, Intent).一起使用

參數

                            viewId      當點擊時將要觸發PendingIntent的視圖的id

                            pendingIntent   當點擊時傳過去的PendingIntent

 

public void setPendingIntentTemplate (int viewId, PendingIntent pendingIntentTemplate)

當在widgets中使用集合(比如說ListView, StackView等等)時,在單獨的一個條目中設置PendingIntent代價是很昂貴的,因此也是不被允許的。這個方法應該在集合中設置一個單獨的PendingIntent模板,然後每一個單獨的條目都可以通過setOnClickFillInIntent(int, Intent)來區別他們的點擊事件。

參數

         viewId      當點擊時,其子視圖需要使用PendingIntent模板的集合id

         pendingIntentTemplate          和viewID的一個子類綁定在一起的PendingIntent,這個孩子在點擊時會被執行

 

  public void  setProgressBar (int viewId, int max, int progress, boolean indeterminate)

 如果indeterminate為true的話,相當於調用ProgressBar.setMax, ProgressBar.setProgress和ProgressBar.setIndeterminate,那麼最大值和進度被忽略

參數

         viewId      視圖的id

         max          進度條的100%時的值

         progress    進度條當前的值

   indeterminate          如果進度條是不確定的為true,反之為false

 

public void setRelativeScrollPosition (int viewId, int offset)

相當於調用smoothScrollToPosition(int, int).

參數

                            viewId      視圖id

                            offset        滾動套適配器偏移位置

 

public void setRemoteAdapter (int appWidgetId, int viewId, Intent intent)

相當於調用setRemoteViewsAdapter(Intent)

參數

                            appWidgetId             包含指定視圖的app widget的id

viewId      視圖id

                            intent       為RemoteViewsAdapter提供數據的服務的intent

 

public void setScrollPosition (int viewId, int position)

相當於調用smoothScrollToPosition(int, int).

參數

viewId      視圖id

                            position    滾動到適配器指定位置

 

public void setShort (int viewId, String methodName, short value)      

在視圖布局上為RemoteViews調用一個帶有short值的方法。

參數

                            viewId      視圖id

                            methodName           調用方法的名稱

                            value         要傳給方法的值

 

public void setString (int viewId, String methodName, String value)     

在視圖布局上為RemoteViews調用一個帶有String值的方法。

參數

                            viewId      視圖id

                            methodName           調用方法的名稱

                            value         要傳給方法的值

 

public void setTextColor (int viewId, int color)        

相當於調用setTextColor(int)

參數

                            viewId      視圖id

                            color         設置所有的狀態(normal, selected, focused)下的text顏色為指定顏色

 

public void setUri (int viewId, String methodName, Uri value)       

在視圖布局上為RemoteViews調用一個帶有Uri值的方法。

參數

                            viewId      視圖id

                            methodName           調用方法的名稱

                            value         要傳給方法的值

      

public void setTextViewText (int viewId, CharSequence text)        

相當於調用setTextColor(int)

參數

                            viewId      視圖id

                            methodName           要調用的方法名

 

public void setViewVisibility (int viewId, int visibility)    

相當於調用view.setVisibility

參數

                            viewId      視圖id

                            visibility    這個視圖的新的可見性

 

public void showNext (int viewId)  

相當於調用showNext()

參數

                            viewId      需要調用showNext()的視圖id

 

public void showPrevious (int viewId)   

相當於調用showPrevious()。

參數

                            viewId      需要調用showPrevious()的視圖id

 

public void writeToParcel (Parcel dest, int flags)   

把一個對象填充到一個Parcel裡

參數

                            Dest                   需要寫入Parcel的對象

                            flags                   這個對象應該怎樣被的標志。可能是0 或者PARCELABLE_WRITE_RETURN_VALUE

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved