zoukankan      html  css  js  c++  java
  • Android中文API(138) —— RemoteViews

    前言

      本章内容android.widget.RemoteViews章节,版本为Android 4.0 r1,翻译来自"xiaoQLu",含示例代码,欢迎访问它的博客:"http://www.cnblogs.com/xiaoQLu",再次感谢"xiaoQLu" !期待你一起参与Android API的翻译,联系我over140@gmail.com。

    声明

      欢迎转载,但请保留文章原始出处:) 

        博客园:http://www.cnblogs.com/

        Android中文翻译组:http://androidbox.sinaapp.com/

     

    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层,它inflatelayout资源文件,并且这个类对提供一些基本操作修改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      要加入子视图的父ViewGroupid

                                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     要移除所有子视图的父ViewGroupid

     

    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等),这个方法不起作用。然而,{@link 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)

     如果indeterminatetrue的话,相当于调用ProgressBar.setMax, ProgressBar.setProgressProgressBar.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 widgetid

    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

    补充

             文章精选

                       Android App Widget中如何调用RemoteView中的函数

                       Android widget RemoteView

                       RemoteView ViewFlipper 小部件简单动画

                       Android:AppWidgetPendingIntentRemoteViews用法

     
  • 相关阅读:
    整理打印PI值
    使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)
    ThinkPHP+jQuery EasyUI Datagrid查询数据的简单处理
    ThinkPHP学习(三)
    Apache+PHP配置PATHINFO的一个小问题
    ThinkPHP学习(二)
    接口签名工具类
    RSA加密和解密工具类
    kafka项目中踩到的一个坑(客户端和服务器端版本不一致问题)
    自己实现字符串转整数(不使用JDK的字符串转整数的方法)
  • 原文地址:https://www.cnblogs.com/over140/p/2265736.html
Copyright © 2011-2022 走看看