`

在App Widget中添加Button并实现监听

 
阅读更多

PendingIntent:

创建方法:

     getActivity(Context, int, Intent, int),

     getBroadcast(Context, int, Intent, int),

     getService(Context, int, Intent, int);

 

RemoteViews的作用:

1.该对象表示了一系列的View对象。

2.RemoteViews所表示的对象运行在另外的进程中。

 此项目接着http://yinger-fei.iteye.com/admin/blogs/1173658的创建小部件项目开始写。

 这次程序功能:在App Widget中添加Button并实现监听。

1.向App Widget中添加Button

 

  <Button 
  	android:id="@+id/widgetButtonId"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="測試用按鈕"
  />

 

2.为Button绑定处理器

注意:由于App Widget和应用程序运行在不同的进程中(App Widget中的view运行在Home Screen进程中),所以无法按之前惯用的方法绑定监听器。

 

remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);

 在extends AppWidgetProvider的类中。实现onUpdate方法

 

@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		//ystem.out.println("onupdate");
		for(int i=0;i<appWidgetIds.length;i++){
			System.out.println(appWidgetIds[i]);
			//创建一个Intent对象
			Intent intent=new Intent(context,TargetActivity.class);
			//创建一个PendingIntent
			PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
			
			RemoteViews remoteViews=new RemoteViews(context.getPackageName(),R.layout.example_appwidget);
			//为按钮绑定事件处理器
			//参数含义 1 被绑定控件的id 2 事件发生时,那个pendingintent被执行
			remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);
			//更新appwidget
			//参数含义 1 被更新appwidgetid
			appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
		}

 

 这里显示的效果就是点击button时,跳转到另外一个Activity。使用的是getActivity();

分享到:
评论

相关推荐

    android之appwidget(一)简单appwidget

    布局文件可以包含文本、图片、按钮等组件,但需要注意的是,由于AppWidget运行在单独进程中,因此不能直接引用Activity中的资源,而应使用RemoteViews对象来操作这些组件。 例如,一个简单的AppWidget布局文件可能...

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

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

    android app widget demo

    在"appwidget"这个压缩包文件中,可能包含了示例代码和资源文件,供开发者学习如何实现上述功能。通过研究这些文件,你可以更好地理解App Widget的工作原理和实现细节,从而在自己的项目中创建出富有特色的桌面小...

    appwidget的简单使用

    最后,为了让用户能够将AppWidget添加到主屏幕,你需要在主活动中创建一个意图(Intent)并调用`PendingIntent`,然后在需要的位置显示一个通知或快捷方式让用户触发添加操作。 ```java Intent intent = new Intent...

    AppWidget-master.zip

    当用户在主屏幕上添加AppWidget时,系统会根据定义好的AppWidgetInfo创建实例,并监听各种事件,如点击事件。 在源码中,你可能会看到以下几个关键文件: 1. **AndroidManifest.xml**:这是每个Android应用的核心...

    Android小部件AppWidget

    Android小部件AppWidget是Android操作系统中的一个重要特性,它允许用户在主屏幕上放置应用程序的轻量级视图,提供快速访问或交互的功能。AppWidget并非完整的应用程序,而是应用程序的一个部分,通常展示简化的UI和...

    AppWidget_FlashLight

    在本文中,我们将深入探讨AppWidget的创建、工作原理以及如何实现类似FlashLight功能的AppWidget。 首先,要创建一个AppWidget,我们需要定义一个`AppWidgetProvider`类,这是Android提供的一个抽象类,负责处理App...

    Android高级应用源码-Android小部件AppWidget.zip

    AppWidgetProvider监听与AppWidget相关的广播事件,如添加、删除或更新小部件时,会触发对应的方法。 2. **AppWidgetProviderInfo**: 定义了AppWidget的元数据,包括小部件的大小、默认图标、初始布局等信息。在...

    AndroidStudio简单实现单击Widget打开Activity

    在Android应用开发中,Widget是桌面小部件,它能让用户在主屏幕上与应用程序进行交互,而无需实际打开应用。Android Studio作为官方推荐的集成开发环境(IDE),为开发者提供了便捷的方式来创建和管理Widget。本教程...

    Android小部件AppWidget.zip

    - `AppWidgetProvider`是Android中用于处理AppWidget事件的类,类似于BroadcastReceiver,它监听并处理来自系统的广播,如用户添加、删除或更新小部件时的事件。 3. **XML配置文件**: - 在AndroidManifest.xml中...

    安卓开发-Android小部件AppWidget.zip

    - **组件定义**: AppWidget是在AndroidManifest.xml文件中通过标签定义的,通常与BroadcastReceiver关联,用于监听并处理来自系统的广播事件。 - **布局文件**: 小部件的界面由XML布局文件描述,可以包含各种View...

    Widget 闹钟android实现

    - 在BroadcastReceiver中,我们需要监听ACTION_APPWIDGET_UPDATE意图,以及我们自定义的意图,如ACTION_SET_ALARM。当用户点击Widget上的按钮时,发送自定义意图,BroadcastReceiver捕获这个意图并执行相应的操作。...

    Android中的AppWidget入门教程

    在本入门教程中,我们将逐步学习如何创建一个基本的AppWidget,并实现与客户端应用程序的交互。 **一、创建简单的AppWidget** 1. **定义AppWidget配置文件** 首先,我们需要在`res/xml`目录下创建一个XML文件,...

    APP自定义标题栏-----并对标题栏中的控件实现监听和响应(源代码)

    本教程将详细讲解如何创建一个自定义标题栏,并在其中添加控件,以及实现这些控件的监听和响应事件。 首先,我们需要理解Android系统的布局层次结构。标题栏(Toolbar)通常位于Activity的顶部,它是ActionBar的...

    widget跳转activity

    完成以上步骤后,当用户在主屏幕上添加Widget并点击它时,就会启动`TargetActivity`,实现了从Widget到Activity的跳转。在实际开发中,还可以根据需求添加更多交互逻辑,如传递数据到Activity,或者在不同的情况下...

    Pro Android学习:widget小例子

    5. **处理用户交互**: 为Widget添加点击事件监听器,通常在`AppWidgetProvider`的`onReceive()`方法中处理。 ```java Intent intent = new Intent(context, YourActivity.class); PendingIntent pendingIntent = ...

    Android UI组件AppWidget控件入门详解

    在`&lt;receiver&gt;`标签内,还需要包含一个`&lt;intent-filter&gt;`,用于指定监听的广播事件,如`android.appwidget.action.APPWIDGET_UPDATE`,这代表AppWidget更新的广播动作。 接着,需要在`xml`目录下定义AppWidget的...

    android开发

    5. **更新逻辑**:虽然示例代码中未给出,但在实际开发中,AppWidgetProvider需要实现更新逻辑,例如监听时间变化、网络状态变化等事件,并根据这些事件更新Widget的内容。 #### 六、总结 通过以上介绍可以看出,...

    安卓Widget小组件相关-WidgetTest.zip

    在`appwidget-provider.xml`文件中定义Widget的元数据,包括尺寸、最小宽度和高度、更新频率等。这是系统用来理解Widget特性的关键文件。 4. **更新Widget内容** 可以通过`AppWidgetManager`的`updateAppWidget()...

    Android项目实战--手机卫士32--给清理进程添加一个Widget

    当用户从Widget选择器中添加Widget时,系统会发送一个ACTION_APPWIDGET_PICK广播,我们需要在这个广播接收器中调用AppWidgetManager的addAppWidget()方法,将创建好的Widget添加到主屏幕。 此外,为了提供更好的...

Global site tag (gtag.js) - Google Analytics