详解Android Widgets中Click事件

移动开发
Android Widgets中Click事件是本文要介绍的内容,主要来了解并学习Android Widgets应用,具体内容的实现来看本文详解。

Android Widgets中Click事件是本文要介绍的内容,主要来了解并学习Android Widgets应用。不得不说,Android下的Widgets事实上很弱,而提供的交互能力更是相当的少,在其关键类 RemoteViews内,也仅能找到一个OnClick的事件,除此之外完全没有其他任何事件。

借由这个事件,让我们能够完成一些简单的交互,其基本原理只有一条,即对界面组件作出Click动作,然后处理该Click事件

核心步骤如下所示:

1、申请一个Intent,用于标识Click时要做的动作

2、申请一个PendingIntent,用于将Intent挂起,并等待事件触发

3、绑定Click事件到具体组件

4、更新Widget

于是代码就很简单了:

  1. public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){  
  2. Intent actClick=new Intent("rarnu.demo.click");  
  3. PendingIntent pendingPendingIntent.getBroadcast(context, 0, actClick, 0);  
  4. RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.main);  
  5. rv.setOnClickPendingIntent(R.id.btnClick, pending);  
  6. appWidgetManager.updateAppWidget(appWidgetIds, rv);  

此处的Intent actClick=new Intent("rarnu.demo.click");一句,可以按不同的需求修改成不同的形式

下面按不同的场景来讲述

一、发送消息

要发送消息,必须在Widget的配置文件内增加消息的接收动作 / Action,如下所示:

  1. <action android:name="rarnu.demo.click"></action> 

有了这句配置后,Widget就拥有了接受指定消息的能力,再配合代码处理之

  1. public void onReceive(Context context, Intent intent){  
  2. super.onReceive(context, intent);  
  3. if(intent.getAction().equals("rarnu.demo.click")) {  
  4. Toast.makeText(context, "OK!!!!!", Toast.LENGTH_LONG).show();  
  5. }  

二、启动应用程序

Intent声明需要改为Intent actClick=new Intent(context, <startApp>.class);

三、启用服务

Intent的声明需要改为Intent actClick = new Intent("<ServiceName>.START");

看完这篇文章后,可能有些人会问,为什么没有从Widget界面上获取数据的代码演示?

我在此说一下,是的,就是没有从Widget界面上获取数据,因为Android不支持。

小结:详解Android Widgets中Click事件的内容介绍完了,希望通过Android Widgets内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-09-09 14:09:17

Android Wid

2011-09-09 13:59:17

Android wid

2011-09-08 10:18:09

Windows MobWidgets

2009-06-23 10:06:03

2011-09-07 14:55:28

Android WidAppWidget事件

2011-08-29 14:59:26

QtEvent事件

2011-09-01 13:08:16

JQuery Mobi事件方法

2017-03-14 13:51:23

AndroidView事件分发和处理

2021-08-17 13:41:11

AndroidView事件

2013-09-13 13:15:28

AndroidWebViewJavaScript

2013-04-22 13:51:08

Android开发Android中App

2014-05-27 15:36:01

AndroidActivity启动模式

2021-11-24 08:33:09

Android广播机制应用程序

2015-11-06 13:59:01

JavaScript事件处理

2011-05-16 14:12:30

QuickWidgetQML

2011-08-22 10:49:42

Cocos2d 开发CCLayerTouch事件

2023-03-06 10:44:50

AndroidProguard

2009-10-20 14:58:15

Javascript事

2009-12-29 17:25:36

Silverlight

2011-06-29 16:14:59

Qt 事件 过滤器
点赞
收藏

51CTO技术栈公众号