首页 > 代码库 > 第七十三讲:RemoteViews

第七十三讲:RemoteViews

聪明的资质、内在的干劲、勤奋的工作态度和坚韧不拔的精神,这些都是科学研究成功所需要的条件。——贝弗里奇


本讲内容:RemoteViews的使用


一、RemoteViews的作用

RemoteViews这个类在自定义通知的时候可以用到,用来设置自定义通知的布局资源,RemoteViews用的是层的概念,就是你添加一个布局在父view上,这个其实是两层。这个类可以显示在其他进程中的呈层次结构的view类中。这个层次结构可以用layout布局文件加载,并且提供了一些基本的方法来修改其中的内容。


二、构造函数:

      RemoteViews(String packageName, int layoutId) ;通过加载指定的布局来显示这个RemoteViews。

      RemoteViews(Parcel parcel)  ;从一个parcel中读取RemoteViews对象。


三、公共方法

1、public voidaddView (int viewId,RemoteViews nestedView)

通过调用这个addview方法来加载指定的RemoteViews,它允许用户可以通过内部的方法来加载RemoteViews,在某种情况下这个创建出来的RemoteViews可以回收这个布局,使用removeAllViews(int)清除任何存在的子view视图。

参数:viewId    要添加子view到哪个父ViewGroup的id

nestedView    要添加的子视图RemoteViews

 

2、publicViewapply (Context context,ViewGroup parent)

用Inflates加载视图对象并且应用到所有的动作中。这个方法可能抛出异常。

      参数:

           context   默认上下文context

           parent   生成视图层将要填充的parent。此方法不会附加到层次结构。调用者应该在适当的时候处理。

      返回值: 已经用inflate加载的视图层。

 

   3、public RemoteViewsclone ()

创建并返回这个对象的复件,默认的实现返回一个(自称为)浅拷贝。它创建这个类的一个新实例并从原来的

实例中复制字段值(包括类相关的)到这个新的实例。相比之下,深拷贝,还会递归复制内部类。

      返回值:  这个类的复件。

 

   4、public int describeContents ()

      Parcelable中特定的编码形式描述各种特殊的对象。

      返回值: 返回由Parcelable特定编码形式的对象类型的位掩码。

 

   5、public int getLayoutId ()  得到layout的id

 

   6、publicStringgetPackage () 得到这个类得包

 

   7、public boolean onLoadClass (Class clazz)

     Hook允许LayoutInflater客户端限制设置视图,即允许被inflated加载

      参数: clazz   用来inflated加载的视图对象 

      返回值:true:表示允许用这个类;false表示不可以;

 

   8、public void reapply (Context context,View v)

      为视图对象添加所有的动作,这个方法会抛这个Caller beware异常;

      参数: v   要添加动作的视图。这个应该是apply(Context, ViewGroup)调用的结果 

 

   9、public void removeAllViews (int viewId)

      调用removeAllViews()一个效果;

      参数:viewed  要移除所有子视图的父ViewGroupid

 

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

提供一个RemoteViews在视图布局上可以添加带有Bitmap值的方法。

      参数:    viewId  整个试图id methodName  要调用的方法名 value   要传递的值



本讲就到这里,Take your time and enjoy it

第七十三讲:RemoteViews