`

widget入门

 
阅读更多

widget就是android桌面小空间.

开发流程大概是:

1.在manifest中注册监听widget更新:

 <receiver
            android:name="com.widget.WidgetProvider"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_confige" />//配置信息
        </receiver>

 2.在res/下新建xml文件夹,在其下新建配置文件,名称为widget_confige(任意命)配置信息如下:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/widget_layout"
    android:minHeight="72dp"
    android:minWidth="72dp"
    android:updatePeriodMillis="3000" >

</appwidget-provider>

 3.新建类继承appwidgetProvider类,重写onupdate方法:

package com.widget;

import java.util.Calendar;

import com.example.widgetdemo.R;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;

//主要继承这个类appwidgetProvider
//onupdate方法
public class WidgetProvider extends AppWidgetProvider {
	private String[] Months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
			"九月", "十月", "十一月", "十二月" };

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		super.onReceive(context, intent);
	}

	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		// TODO Auto-generated method stub
		RemoteViews updateViews = buildUpdate(context);
		appWidgetManager.updateAppWidget(appWidgetIds, updateViews);
		
		super.onUpdate(context, appWidgetManager, appWidgetIds);
	}

	private RemoteViews buildUpdate(Context context) {
		RemoteViews updateViews = null;
		Calendar calendar = Calendar.getInstance();
		String months = Months[calendar.get(Calendar.MONTH)];
		//获取widget布局
		updateViews = new RemoteViews(context.getPackageName(),
				R.layout.widget_layout);
		//为布局空间设置内容
		updateViews.setTextViewText(R.id.Month, months);
		updateViews.setTextViewText(R.id.Date,
				String.valueOf(calendar.get(Calendar.DATE)));
		//点击控件跳转到指定activity
		Intent i = new Intent();
		i.setComponent(new ComponentName("com.example.widgetdemo",
				"com.example.widgetdemo.MainActivity"));
		i.setAction(Intent.ACTION_MAIN);
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
				| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
		i.addCategory(Intent.CATEGORY_LAUNCHER);
		PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, i,
				0);
		updateViews.setOnClickPendingIntent(R.id.bt, pendingIntent);
		return updateViews;
	}
}

 

  • 大小: 20.4 KB
分享到:
评论

相关推荐

    android widget入门教程

    Android小部件(Widgets)是Android操作系统提供的一种特性,允许开发者在用户的主屏幕上...在"widget.pptx"和"MyWidget"这两个文件中,你可能会找到更详细的步骤和示例代码,帮助你更好地理解和实现这个教程的内容。

    Android widget入门手册

    包含的各种控件都有截图: Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!.doc、 SeekBar(SeekBar)的使用.doc、 Spinner(Spinner)的使用.doc、 Tab与TabHost.pdf、 按钮(Button)的使用.doc、 单选框(RadioButton)的...

    Android中的AppWidget入门教程

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

    s60 widget 入门

    ### 诺基亚Web Widget开发入门 #### 1. 概述 本文档旨在为开发者提供诺基亚Web Run-Time (WRT) 平台下的Widget开发基础信息。通过本指南,开发者能够学习如何创建、测试以及部署适用于诺基亚设备的Widgets。文档...

    Dojo之Widget标签开发 - 我为人人,人人为我 - BlogJava

    在Widget开发中,通常会声明一个新的Widget类,继承自Dojo的基础Widget类,如`dijit/_WidgetBase`。 2. **templateString或templatePath**: Widget的HTML结构通常由模板字符串(templateString)或模板路径...

    诺基亚 Web Widget 开发入门及实例

    诺基亚Web Widget开发入门及实例是一份专为开发者准备的详细教程,旨在引导初学者进入诺基亚手机上的Widget应用程序开发领域。Widget是小型、轻量级的应用程序,可以在移动设备的主屏幕上运行,提供快捷的功能访问或...

    Widget制作入门攻略

    《Widget制作入门攻略》是一本专为初学者设计的教程,旨在帮助读者快速掌握Widget的制作技巧。在本文中,我们将深入探讨Widget的基本概念、开发环境的搭建、UI设计、功能实现以及发布流程等关键知识点。 首先,让...

    BlackBerry Widget 开发入门

    ### BlackBerry Widget 开发入门知识点详解 #### 背景知识:Widget 技术与 BlackBerry 平台 **Widget 技术概述**: - **定义**:Widget 是一种轻量级的应用程序,通常用于桌面或移动设备上显示实时信息或执行简单...

    Nokia_Widget开发入门(中文)

    Nokia_Widget开发入门(中文)和范例

    雅虎Widget制作全攻略

    制作widget的入门级别书目~可供参考~雅虎widget

    教你制作widget

    #### 一、入门:了解Widget与Yahoo!奇摩Widget Engine Widget是一种小型应用程序,主要用于桌面环境,提供各种功能如天气预报、新闻摘要等。Yahoo!奇摩Widget Engine则是Yahoo开发的一个平台,允许用户通过XML和...

    widget搭建开发环境

    本文将详细介绍如何基于OPhone平台进行Mobile Widget的开发环境搭建及简单示例,帮助开发者快速入门。 #### OPhone Mobile Widget开发概述 OPhone是一款基于Android系统定制的操作系统,支持多种应用程序的开发,...

    lablab.top-widget

    Wowchemy Widget入门模板想要构建和发布尚不存在的小部件? 可以轻松轻松地免费创建一个漂亮的网站。在Markdown,Jupyter或RStudio中编辑您的网站,使用Hugo生成它,并使用Gi​​tHub或Netlify进行部署。使用窗口小...

    wowchemy-widget-subscribe

    Wowchemy Widget入门模板 想要构建和发布尚不存在的小部件? 可以轻松轻松地免费创建一个漂亮的网站。 在Markdown,Jupyter或RStudio中编辑您的网站,使用Hugo生成它,并使用Gi​​tHub或Netlify进行部署。 使用...

    wowchemy-widget-flist

    Wowchemy Widget入门模板 想要构建和发布尚不存在的小部件? 可以轻松轻松地免费创建一个漂亮的网站。 在Markdown,Jupyter或RStudio中编辑您的网站,使用Hugo生成它,并使用Gi​​tHub或Netlify进行部署。 使用...

    wowchemy-widget-skills

    Wowchemy Widget入门模板想要构建和发布尚不存在的小部件? 可以轻松轻松地免费创建一个漂亮的网站。 在Markdown,Jupyter或RStudio中编辑您的网站,使用Hugo生成它,并使用Gi​​tHub或Netlify进行部署。 使用窗口...

    wowchemy-widget-owncontact

    Wowchemy Widget入门模板 想要构建和发布尚不存在的小部件? 可以轻松轻松地免费创建一个漂亮的网站。 在Markdown,Jupyter或RStudio中编辑您的网站,使用Hugo生成它,并使用Gi​​tHub或Netlify进行部署。 使用...

    三星(Samsung)Widget资料(pdf)

    - `Samsung_Mobile_Widget_Development_Guide_1.0.0.20090814.pdf`:这份文档是三星Widget的开发入门指导,详细介绍了如何构建和优化Widget,包括基本的编程语言、API使用、UI设计原则以及性能调优。开发者可以通过...

    android天气预报widget

    本教程将带你从零基础开始,一步步创建一个简单的天气预报Widget,虽然最终的界面可能略显朴素,但非常适合初学者作为入门实践。 首先,我们需要了解Android Widget的基本构成。一个Widget通常由一个`...

Global site tag (gtag.js) - Google Analytics