紧接上集,现在我们要实现对appwidget控件的更新。
首先是新知识点介绍:
RemoteViews:已经介绍过了,指的是appwidget中的所有的控件。
componentName:指的是appwidget整个这个对象。
其次提醒下大家,由于appwidget与我们的主进程不是同一个进程,所以我们不能像在主进程中那样的操作,先get一个控件,然后set一个控件。还记得我们第二集上讲的那个么,RemoteViews,我们通过这个对appwidget的控件进行操作。
这集目标是我们在appwidget中放入一个textview , 一个imageView,和一个button,我们点击这个button他的textview 和imageview都发生改变。
不多说,看代码:
1、首先在appwidget.xml中放入控件,没什么好解释的:
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="你好啊,机器人"
/>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="测试按钮"
/>
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/android_icon_125"
/>
2、然后在我们的onReceive中进行操作:(这里我们自己定义了一个action,详情看上集)
要对控件更新,我们需要几个要点:1、获得控件 2、改变过程 3、将结果显示出来。
获得控件与改变我们需要remoteView,而将结果update出来我们需要AppWidgetManager与ComponentName。代码如下:
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(action.equals(UPDATE_ACTION)){
System.out.println("onReceive-----"+action);
//新建一个remoteViews,对控件进行操作。
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.appwidget);
//控件更新:
remoteViews.setImageViewResource(R.id.imageview, R.drawable.dialog_icon);
remoteViews.setTextViewText(R.id.textview, "请说火星文!");
//更新桌面。
//获得appwidgetmanager。
AppWidgetManager appwidgetManager = AppWidgetManager.getInstance(context);
//获得componentName。
ComponentName componentname = new ComponentName(context, AppwidgetProvider.class);
//更新:
appwidgetManager.updateAppWidget(componentname, remoteViews);
}
else
super.onReceive(context, intent);
}
好了,运行下对不对呢?
打完收工!
分享到:
相关推荐
Android 桌面控件(AppWidget)是Android操作系统提供的一种独特功能,允许开发者创建可以在用户主屏幕上显示的小型应用程序组件。这些控件通常提供快速访问应用的核心功能或展示实时信息,如天气预报、日历事件或...
3. **更新AppWidget**: 最后,我们需要将这些更改推送到系统,以便更新AppWidget: ```java AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); appWidgetManager.updateAppWidget...
AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图: 图中我用黄色箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用。典型...
了解了基本概念后,开发者可以通过阅读《Android 之桌面组件 App Widget 案例》、《Android Launcher开发之桌面小部件AppWidget详解》以及相关的博客文章来深入学习。这些资料提供了丰富的实例和代码解析,帮助理解...
在Android开发中,AppWidget是桌面小部件,它允许开发者扩展Android主屏幕的功能,提供一种在用户主屏幕上显示实时信息和交互式控件的方式。本文将深入探讨如何在AppWidget中自定义Action广播,以便更好地控制和扩展...
App Widget 的概念 一个简单的App Widget例子 PendingIntent的使用 RemoteViews的使用 接收来自App Widget的广播 更新App Widget的控件状态
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> android:name="android.appwidget.provider" android:resource="@xml/app_widget_info" /> ``` 这里,`YourWidgetProvider`是你的...
AppWidget桌面小控件是Android操作系统提供的一种独特功能,它允许开发者将应用程序的部分功能或信息直接展示在用户的手机或平板电脑的主屏幕上,无需打开应用即可进行交互。AppWidget不仅提升了用户体验,还增加了...
Android UI组件AppWidget控件是Android系统提供的一种特殊类型的组件,允许开发者创建可以在用户主屏幕上的小工具。这些小工具通常提供快速访问应用程序功能或显示实时信息的方式,比如天气预报、音乐播放控制等。...
#### 四、简单 AppWidget 示例 接下来,我们将通过一个包含 TextView 和 Button 的简单 AppWidget 来详细了解其开发过程。 ##### 1. 准备布局文件 首先,创建一个用于显示 AppWidget 的布局文件。在这个例子中,...
在Android系统中,桌面Widget(App Widget)是应用程序在主屏幕上提供的一种小型用户界面,它允许用户无需打开应用即可快速访问或操作应用的功能。这个"Android的桌面Widget的Demo"显然是一个教学示例,用于展示如何...
本教程“Axure夜话之Axure手机原型视频教程之手机AppWidget”由知名教育机构“老二牛车程矢”提供,旨在帮助学习者掌握如何使用Axure来创建手机App的Widget。App Widget是Android系统中的一个重要特性,它允许用户在...
Android-Chat-Widget 是像微信、WhatsApp、Line一样的聊天控件。 Demo 如何使用? 1.在Layout中 android:id="@ id/messageInputToolBox" android:layout_width="match_parent" ...
例如,在`my_appwidget.xml`中,有一个按钮控件。当用户点击这个按钮时,AppWidgetProvider会接收到一个Intent,然后根据Intent的类型执行相应的操作,可能是启动一个新的Activity,更新数据,或者启动一个Service。...
【Android AppWidget基础详解】 在Android开发中,AppWidget是一种可以在主屏幕上显示的小部件,它为用户提供了一种无需打开应用程序就能与其交互的方式。本篇将深入讲解2016年9月8日发布的"WidgetDemo",这个示例...
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> android:name="android.appwidget.provider" android:resource="@xml/widget_info" /> ``` - 其次,创建`MyWidgetProvider`类继承...
每个AppWidget由一个`AppWidgetProvider`类定义,它是Android广播接收器的子类,用于监听与AppWidget相关的事件,如添加、删除或更新小组件。在`AndroidManifest.xml`中注册这个类: ```xml <receiver android:name...
在Android开发中,时间日期控件是用户界面中常见的组件,用于让用户选择日期或时间。在本示例中,我们关注的是如何在Android应用中添加并使用这些控件。我们将探讨如何通过添加按钮来触发日期和时间的选择,并将选定...
### Android学习之控件的显示与隐藏 在Android应用程序开发中,经常需要通过改变界面元素的可见性来实现动态更新用户界面(UI)的效果。这种需求通常体现在响应用户交互、根据应用状态变化调整UI布局等方面。本文将...