`

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入门教程

    widget入门教程 android widget

    Android中的AppWidget入门教程

    主要介绍了Android中的AppWidget入门教程,本文起讲解了如何创建一个简单的AppWidget、如何使得AppWidget与客户端程序交互等内容,需要的朋友可以参考下

    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)的...

    s60 widget 入门

    这篇入门文档向开发伙伴们提供了为诺基亚Web Run-Time平台开始开发widgets的基本信息。文档还讨论了如何用S60 SDK模拟器开发及测试widgets。《渐进式Widget开发》这一章引导您创建一个能运行于诺基亚Web Run-Time...

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

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

    BlackBerry Widget 开发入门

    为了更好的支持手机上的Web 应用,提供更好的用户体验和效果.BlackBerry 提供了Widget 开发平台. Widget 基于BlackBerry 的Browser 支持技术之上, 对HTML/CSS 和Javascript 提 供全面支持, 同时通过BlackBerry 提供的...

    Widget制作入门攻略

    您嫌那些详细的开发文档太过复杂?您希望有本能够手把手教您入门的手册?那么千万不要错过,由雅虎WIDGET首席工程师为您量身订做的《widget制作入门攻略》!

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

    这是一个介绍如何开发widget的文档,类容详尽细致,还附有实例。

    Nokia_Widget开发入门(中文)

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

    雅虎Widget制作全攻略

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

    lablab.top-widget

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

    wowchemy-widget-owncontact

    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进行部署。 使用窗口...

    Android wiget Test

    Android 开发的 widget示例,对widget入门非常有帮助

    BlackBerry Widget 开发中级篇

    在入门篇中,我们讨论了如何应用Blackberry 提供的Widget API 来进行开发,从如下链接中, http://www.blackberry.com/developers/docs/widgetapi/ 可以找到BlackBerry 能提供的所有Widget API 列表。然后,对于很多...

    三星(Samsung)Widget资料(pdf)

    三星Widget开发的一些入门资料,包括development guide,Widget specification Document,模拟器及Widget的安装等文档。

    Android UI组件AppWidget控件入门详解

    主要介绍了Android UI组件AppWidget控件入门,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics