`
venus585625
  • 浏览: 252855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android之appWidget按钮事件 传值

阅读更多
在appWidget中,ImageButton和Button都是被支持的控件,其事件可分成三种类型:
一、开启Activity
二、开始Service
三、发送按钮Action
下面开始一个一个分析,如何实现。

一、开启Activity
1、首先先定义个开启Activity的intent
eg: Intent fullIntent=new Intent(this,FullScreen.class);
若要传递数据,则使用intent.putExtra()方法
eg: fullIntent.putExtra("isCircle",isCircle);

2、用intent实例化一个PendingIntent,调用pendingIntent的getActicity方法来启动另一个Activity
①若该Intent带有数据,则需要将最后一个参数的值设为:FLAG_CANCEL_CURRENT
eg: PendingIntent Pfullintent=PendingIntent.getActivity(this, 0, fullIntent,PendingIntent.FLAG_CANCEL_CURRENT);
②若该Intent不带数据,则最后一个参数设为0
eg: PendingIntent Pfullintent=PendingIntent.getActivity(this, 0, fullIntent, 0);

3、实例化RemoteView,其对应相应的Widget布局
eg: RemoteViews views= newRemoteViews(getPackageName(), R.layout.widget);

4、给RemoteView上的Button或ImageButton设置按钮事件
eg: views.setOnClickPendingIntent(R.id.IBfullscreen,Pfullintent);

5、更新AppWidget界面
①如果是在onUpdate()方法内更新AppWidget界面
eg: appWidgetManager.updateAppWidget(appWidgetIds, ActivityView);
②如果是在onUpdate()方法外(一般为Service内)更新AppWidget界面,则需要定义几个变量
eg: public RemoteViews views;//RemoteView对象
publicComponentName thisWidget; //组件名
public AppWidgetManager manager; // AppWidget管理器

thisWidget = new ComponentName(this,PictureAppWidgetProvider.class);
manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, views);

二、开启Service
1、定义一个intent来开启Service
eg: Intent startServiceInten=newIntent("zyf.temp.Service.START");
注:参数为开启Service的动作

2、用Intent实例化一个PendingIntent,利用PendingIntent的getService方法来启动一个服务
eg: PendingIntent Pintent=PendingIntent.getService(context, 0, startServiceInten, 0);

3、实例化RemoteView,其对应相应的Widget布局
eg: RemoteViews views= newRemoteViews(getPackageName(), R.layout.widget);

4、给RemoteView上的Button或ImageButton设置按钮事件
eg: views.setOnClickPendingIntent(R.id.IBfullscreen,Pfullintent);

5、更新AppWidget界面
①如果是在onUpdate()方法内更新AppWidget界面
eg: appWidgetManager.updateAppWidget(appWidgetIds, ActivityView);
②如果是在onUpdate()方法外(一般为Service内)更新AppWidget界面,则需要定义几个变量
eg: public RemoteViews views;//RemoteView对象
publicComponentName thisWidget; //组件名
public AppWidgetManager manager; // AppWidget管理器

thisWidget = new ComponentName(this,PictureAppWidgetProvider.class);
manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, views);

三、发送按钮Action
1、定义一个Intent来发送按钮Action
eg: Intent prevInten=new Intent("PREV");

2、用Intent实例化一个PendingIntent,利用PendingIntent的getBroadcast方法来发送广播
eg: PendingIntent Pprevintent=PendingIntent.getBroadcast(this, 0, prevInten, 0);

3、实例化RemoteView,其对应相应的Widget布局
eg: RemoteViews views= newRemoteViews(getPackageName(), R.layout.widget);

4、给RemoteView上的Button或ImageButton设置按钮事件
eg: views.setOnClickPendingIntent(R.id.IBprev,Pprevintent);

5、更新AppWidget界面
①如果是在onUpdate()方法内更新AppWidget界面
eg: appWidgetManager.updateAppWidget(appWidgetIds, ActivityView);
②如果是在onUpdate()方法外(一般为Service内)更新AppWidget界面,则需要定义几个变量
eg: public RemoteViews views;//RemoteView对象
publicComponentName thisWidget; //组件名
public AppWidgetManager manager; // AppWidget管理器

thisWidget = new ComponentName(this,PictureAppWidgetProvider.class);
manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, views);

6、接收该Action
①在AppWidget自己的onReceive方法内接收
⒈在Action,要在Manifest.xml中加入Action
eg: <intent-filter>
<actionandroid:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
<actionandroid:name="PREV"></action>
</intent-filter>
⒉在onReceive()方法内编写要实现的动作
eg: if(intent.getAction().equals("PREV"))
{
//在这编写接收到该Action后要实现的动作
}
②在Service内接收
⒈注册一个BroadcastReceive,声明接收器
eg: IntentFilter filter=new IntentFilter();
filter.addAction("PREV");
registerReceiver(doCommand, filter);
⒉,在BroadcastReceive类的onReceive方法内编写要实现的动作
eg: if(intent.getAction().equals("PREV"))
{
//在这编写接收到该Action后要实现的动作
}

连载:http://hi.baidu.com/gyyuser/blog/item/1f27d347d5e55c93b3b7dc84.html
分享到:
评论

相关推荐

    android之appwidget(一)简单appwidget

    AppWidget提供者是Android的BroadcastReceiver子类,它负责处理AppWidget的生命周期事件,如添加、删除或更新。布局文件则定义了AppWidget在主屏幕上的显示样式,通常包含一个或多个远程视图(RemoteViews)。 创建...

    android之appwidget(四)终 appwidget控件更新

    在Android平台上,AppWidget是能够将小部件添加到用户主屏幕上的迷你应用程序,它们提供了一种无需打开完整应用即可展示信息或执行简单操作的方式。本文将深入探讨Android AppWidget的第四部分,主要关注如何更新App...

    android之appwidget(二)启动新activity

    在Android开发中,AppWidget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,而无需实际打开应用。在本篇博文中,我们将深入探讨如何在AppWidget中启动一个新的Activity,这通常是为了提供更丰富的用户体验...

    android app widget demo

    在Android平台上,App Widget是一种可以在用户主屏幕上展示小型交互式UI元素的应用程序组件。它们提供了一种无需打开应用即可与应用交互的方式,提高了用户体验。现在,让我们深入探讨一下"android app widget demo...

    appWidget启动Activity

    在Android开发中,`appWidget` 是一种可以在用户主屏幕上显示的小部件,它提供了一种无需打开应用程序就能与用户交互的方式。本篇文章将深入探讨如何使用`appWidget`来启动一个`Activity`。 首先,我们需要了解`app...

    android之appwidget

    **Android之AppWidget详解** AppWidget是Android操作系统提供的一种组件,允许开发者在用户主屏幕上创建小型应用程序,这些小部件无需用户直接启动应用就能显示和交互。AppWidget为用户提供了一种快速访问应用功能...

    android appwidget使用说明及示例程序

    1. **AppWidgetProvider**: 这是Android的BroadcastReceiver子类,用于接收和处理与AppWidget相关的广播事件,如添加、删除或更新小部件。 2. **AppWidgetInfo**: 定义了小部件的元数据,包括其大小、名称和图标等...

    Android App Widget 开发

    Android App Widget是Android系统提供的一种轻量级的UI组件,允许开发者在用户的主屏幕上放置一些交互式的快捷方式或小部件,提供类似于桌面小工具的功能。这些小部件可以显示实时信息,如天气、日历事件、音乐播放...

    Android AppWidget实例验证

    在Android平台上,AppWidget是Android系统提供的一种小部件功能,允许开发者创建可以在用户主屏幕上显示的小应用程序。AppWidgets虽然小巧,但能为用户提供便捷的功能访问,例如天气预报、音乐播放控制等。本教程将...

    android AppWidget ListView

    总结,`android AppWidget ListView`的使用涉及到AppWidget框架、RemoteViews、ListView与Adapter的结合以及事件处理等多个核心概念。通过源码学习,可以深入理解这些组件的协同工作方式,提升Android开发技能。

    Android之AppWidget(桌面小部件)开发浅析

    AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图:   图中我用黄色箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用。典型...

    android之appwidget(三)自定义action广播

    在Android开发中,AppWidget是桌面小部件,它允许开发者扩展Android主屏幕的功能,提供一种在用户主屏幕上显示实时信息和交互式控件的方式。本文将深入探讨如何在AppWidget中自定义Action广播,以便更好地控制和扩展...

    android appwidget全面解析

    在深入探讨Android AppWidget之前,我们首先需要理解AppWidget在Android生态中的角色和价值。AppWidget,即桌面小部件,是Android系统提供的一种允许应用程序在主屏幕放置动态更新的组件,用户无需打开完整应用即可...

    android appwidget 经典完整代码

    Android AppWidget是Android系统提供的一种桌面小部件功能,允许开发者创建可以放置在用户主屏幕上的小型应用程序。这些小部件不需要用户直接启动,而是持续显示在屏幕上,为用户提供快速访问或控制应用的功能。在这...

    android 桌面控件appwidget

    Android 桌面控件(AppWidget)是Android操作系统提供的一种独特功能,允许开发者创建可以在用户主屏幕上显示的小型应用程序组件。这些控件通常提供快速访问应用的核心功能或展示实时信息,如天气预报、日历事件或...

    Android -- AppWidget源码.zip

    在Android系统中,AppWidget是桌面小部件的实现,它允许开发者将应用程序的功能和信息集成到用户的主屏幕上,用户无需打开应用即可与之交互。这个压缩包“Android -- AppWidget源码.zip”很可能是包含了Android App...

    Android应用源码之Android小部件AppWidget.zip

    这个压缩包“Android应用源码之Android小部件AppWidget.zip”包含了一个用于展示如何创建和实现Android小部件的源代码示例。 在Android开发中,AppWidget是桌面小插件,它并不像普通的应用程序那样通过用户点击图标...

    Android之初学Appwidget

    **Android之初学AppWidget** 在Android开发中,AppWidget是一种非常独特且实用的功能,它允许开发者将小部件(Widget)放置在用户的主屏幕上,提供快速访问或者简单的交互操作。AppWidget并非传统意义上的应用程序...

    android 桌面组件 App widget的使用 AppWidgetProvider

    Android 桌面组件,又称为 App Widget,是 Android 系统中一种独特且实用的功能。它允许开发者创建小型的应用程序界面,用户可以直接在主屏幕上进行交互,无需打开完整的应用程序。App Widget 提供了一种快捷的方式...

    android app widget 介绍

    App Widget 的概念 一个简单的App Widget例子 PendingIntent的使用 RemoteViews的使用 接收来自App Widget的广播 更新App Widget的控件状态

Global site tag (gtag.js) - Google Analytics