- android
- android.accessibilityservice
- android.accounts
- android.content
- android.database.sqlite
- android.graphics
- android.location
- android.media
- android.net
- android.os
- android.text
- android.view
- android.view.inputmethod
- android.widget
- AbsListView
- AbsoluteLayout
- AbsSeekBar
- AbsSpinner
- AdapterView
- AnalogClock
- BaseAdapter
- BaseExpandableListAdapter
- Button
- CheckBox
- CheckedTextView
- Checkable
- Chronometer
- CompoundButton
- CursorAdapter
- CursorTreeAdapter
- DatePicker
- DialerFilter
- DigitalClock
- EditText
- Filter
- Filter.FilterListener
- Filter.FilterResults
- ExpandableListAdapter
- Filterable
- Gallery
- Gallery.LayoutParams
- GridView
- GridLayout
- RadioGroup
- ImageView
- HorizontalScrollView
- ImageButton
- ImageSwitcher
- FilterQueryProvider
- ListAdapter
- ListView
- MediaController
- QuickContactBadge
- RadioButton
- RatingBar
- RelativeLayout
- RemoteViews
- ResourceCursorAdapter
- ResourceCursorTreeAdapter
- Scroller
- ScrollView
- SearchView
- SeekBar
- SeekBar.OnSeekBarChangeListener
- SimpleAdapter
- SimpleCursorAdapter
- SimpleCursorTreeAdapter
- SimpleExpandableListAdapter
- SlidingDrawer
- Spinner
- SpinnerAdapter
- WrapperListAdapter
- TabHost
- TabHost.TabSpec
- TextView
- TimePicker
- Toast
- TableLayout
- TableRow
- TableRow.LayoutParams
- TabWidget
- TextSwitcher
- ToggleButton
- TwoLineListItem
- VideoView
- ViewAnimator
- ViewFlipper
- ViewSwitcher
- ZoomButtonsController
- ZoomButton
- ZoomControls
- dalvik.system
RemoteViews
RemoteViews
版本: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 等),这个方法不起作用。然而,{@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)
如果 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
补充
文章精选
Android App Widget 中如何调用 RemoteView 中的函数
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论