Android Widget 小工具(两) 使用configure

添加Widget在此之前需要做一些处理操作,可以使用 配置活动

上一篇的实现基础上,加上配置活动(configure=activity)。这时加入Widget时。会先打开一个Activity,进行配置操作,

<appwidget-provider
	....
	android:configure="com.stone.ui.AppWidgetConfigureActivity" >
</appwidget-provider>

配置活动的实现:

package com.stone.ui;

import android.app.Activity;
import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.stone.R;

/*
 * 配置部件
 * 在onCreate中setContentView()函数前加入setResult(RESULT_CANCLE) ,这样假设在Activity初始化完毕前按下了BACK按键,则Widget不会启动;
 * 在setContentView()函数之后(不一定要在onCreate中。在Activity退出前就可以),加入例如以下设置以指定须要启动的Widget
 */
public class AppWidgetConfigureActivity extends Activity implements OnClickListener {
	Button config1, config2, config3;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent intent = getIntent();
		Bundle extras = intent.getExtras();
		if (extras != null) {
			int widgetid = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);//从intent中得出widgetid
			//通知 appwdiget 的配置已取消
			Intent reslut = new Intent();
			reslut.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetid);
			setResult(RESULT_CANCELED, reslut);
			System.out.println("result cancel");
		}
		setContentView(R.layout.switch_configure);

		config1 = (Button) findViewById(R.id.btn_config1);
		config2 = (Button) findViewById(R.id.btn_config2);
		config3 = (Button) findViewById(R.id.btn_config3);
		config1.setOnClickListener(this);
		config2.setOnClickListener(this);
		config3.setOnClickListener(this);
	}

	@Override
	protected void onResume() {
		super.onResume();

	}

	private void onCompletedConfigure() {
		Intent intent = getIntent();
		Bundle extras = intent.getExtras();
		if (extras != null) {
			int widgetid = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);//从intent中得出widgetid
			//通知 appwdiget 的配置已完毕
			Intent reslut = new Intent();
			reslut.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetid);
			setResult(RESULT_OK, reslut);
			System.out.println("result ok");
			finish();
			System.out.println("finish ok");
		}
	}

	@Override
	public void onClick(View v) {
		if (v == config1) {
			//do config1
		} else if (v == config2) {
			//do config2
		} else if (v == config3) {
			//do config3
		}
		onCompletedConfigure();
	}

}

switch_configure.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

	<Button
	    android:id="@+id/btn_config1"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="config1"/>
	<Button
	    android:id="@+id/btn_config2"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="config2"/>
	<Button
	    android:id="@+id/btn_config3"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="config3"/>
</LinearLayout>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-20 15:40:06

Android Widget 小工具(两) 使用configure的相关文章

Android Widget 小部件(二) 使用configure

在添加Widget之前需要做一些处理操作,可以使用 配置活动 在上一篇的实现基础上,加上配置活动(configure=activity).这时添加Widget时,会先打开一个Activity,进行配置操作, <appwidget-provider .... android:configure="com.stone.ui.AppWidgetConfigureActivity" > </appwidget-provider> 配置活动的实现: package com

Android Widget 小部件(四---完结) 使用ListView、GridView、StackView、ViewFlipper展示Widget

官方有话这样说: A RemoteViews object (and, consequently, an App Widget) can support the following layout classes: FrameLayout LinearLayout RelativeLayout And the following widget classes: AnalogClock Button Chronometer ImageButton ImageView ProgressBar Text

Android 开发小工具之:Tools 属性 (转)

Android 开发小工具之:Tools 属性 http://blog.chengyunfeng.com/?p=755#ixzz4apLZhfmi 今天来介绍一些 Android 开发过程中比较有用但是大家又不常用的小工具.这些小工具可以提高 Android 应用开发的效率.还可以提高代码质量.所以还是有必要使用的. 首先介绍布局文件中的 tools 属性. 如果你用 Android Studio 创建一个简单的示例项目,在生成的布局文件中会有这么一行内容: xmlns:tools="http:

Android Widget 小部件(三) 在Activity中添加Widget

package com.stone.ui; import static android.util.Log.d; import android.app.Activity; import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.Intent; imp

Android Widget 小部件(一) 简单实现

在屏幕上添加Widget:或长按屏幕空白处,或找到WidgetPreview App选择.原生系统4.0以下使用长按方式,4.0及以上 打开WIDGETS 创建Widget的一般步骤: 在menifest中 <receiver android:name="com.stone.ui.TimerWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action

[Android Memory] Android性能测试小工具Emmagee

转载:http://blog.csdn.net/anlegor/article/details/22895993 Emmagee是网易杭州QA团队开发的用于测试指定android应用性能的小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为则基于用户真实的应用操作. 在使用上几乎近似不用任何教材即可上手,我们以360手机卫士为例,查看启动,扫描.清理过程中资源消耗的变化. 首先启动Emmagee,设置采集频率为1秒,从列表中选择360安全卫士,开始测试

Android 开发—— 小工具,大效率

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:姚志锋 一.Hugo插件 -- 打印方法运行时间 首先申明下,此Hugo非 彼Hugo(Hugo是由Go语言实现的静态网站生成器). Hugo插件作用 : 能够计算并打印一个方法的输入参数和函数的运行时间 Hugo插件应用场景: 处理Android 应用卡顿问题 (1)先看实例 1)在对应方法处标注@DebugLog SearchResultPanel::dispatchResult处标记@Debug

这些小工具让你的Android 开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

WordPress小工具开发教程(网站公告)

WordPress小工具开发教程(网站公告) BY TIANQIXIN · 2012 年 12 月 26 日 wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小工具功能有限,我们可以通过自己开发小工具来增强wordpress的侧边栏功能.制作wordpress小工具需要用到WP_Widget类,该类位于wp-includes\widgets.php,有兴趣的同学可以打开看看,基本上我们只要扩展这个类就可以开发自己的小工具了.本站以网站公告为例,最终效果图如下: