appweight多个按键响应处理

原创 2012年03月29日 10:17:50

    appweight有时候需要响应多出的按键,如多个按钮在同一个weight要同时响应这么多个按钮的时间

肯定不能像在activity里面处理,而是通过类似广播机制的方法来处理。通过对自己发送action,自己接受action,

自己处理action的形式来完成weights上的事件.

	@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds)
	{
		this.context = context;
		Intent intent1 = new Intent();
		intent1.setAction(UPDATE_ACTION1);
		/****获取所有weight上的所有空间******/
		RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
				R.layout.main);
	/**第一个button1 的时间响应  发送的是UPDATE_ACTION1的广播信号 在OnReceive方法中接受鉴别**/
		PendingIntent pendingIntent1 = PendingIntent.getBroadcast(context, -1,
				intent1, 0);
		intent1.setAction(UPDATE_ACTION2);
	/**第二个button2的时间响应  发送的是UPDATE_ACTION2的广播信号 在OnReceive方法中接受并鉴别**/
		PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context, -1,
				intent1, 0);
		intent1.setAction(UPDATE_ACTION3);
	/**第三个button3的时间响应  发送的是UPDATE_ACTION3的广播信号 在OnReceive方法中接受并鉴别**/
		PendingIntent pendingIntent3 = PendingIntent.getBroadcast(context, -1,
				intent1, 0);
		remoteViews.setOnClickPendingIntent(R.id.button1, pendingIntent1);//取得button1的控件并添加时间 以下类似
		remoteViews.setOnClickPendingIntent(R.id.button2, pendingIntent2);
		remoteViews.setOnClickPendingIntent(R.id.button3, pendingIntent3);
		appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
	}
对广播信息进行分辨 并做对应的处理。
	@Override
	public void onReceive(Context context, Intent intent)
	{
		String action = intent.getAction();//获取action的信息 并进行鉴别 然后执行事件
		if (UPDATE_ACTION1.equals(action))
		{
			System.out.println("button1");
			Toast.makeText(context, "你点击了button1", Toast.LENGTH_LONG).show();
		}
		else if (UPDATE_ACTION2.equals(action))
		{
			System.out.println("button2");
			Toast.makeText(context, "你点击了button2", Toast.LENGTH_LONG).show();
		}
		else if (UPDATE_ACTION3.equals(action))
		{
			System.out.println("button3");
			Toast.makeText(context, "你点击了button3", Toast.LENGTH_LONG).show();

		}
		else
		{
			super.onReceive(context, intent);
		}
	}

同时 你还必须在Androidmainfest.xml上对你的action进行注册

<receiver android:name=".LightChangeActivity" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.jin.UPDATE_APP_WIDGET1" />
                <action android:name="com.jin.UPDATE_APP_WIDGET2" />
                <action android:name="com.jin.UPDATE_APP_WIDGET3" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/light" />
        </receiver>
编写对应的appwidget-provider这里就不说了 




把代码分享出来  http://download.csdn.net/detail/lymabcd/4182363




Android中AppWidget的分析与应用:AppWidgetProvider

田海立@CSDN2012-8-20 本文从开发AppWidgetProvider角度出发,看一个AppWidgetPrvodier在整个AppWidget体系中所扮演的角色。分析了AppWidgetP...
  • thl789
  • thl789
  • 2012年08月20日 20:32
  • 33225

C# WinForm键盘按键响应 实现思路

C# WinForm键盘按键响应 实现思路        例如:欲在FormMain.cs窗体上响应 Ctrl+W 组合按键操作,直接在FormMain.cs中添加如下代码:       ...
  • sean4m
  • sean4m
  • 2016年06月15日 22:36
  • 486

android按键的三种响应方式

主要通过三个按键来演示,每个按键用一种实现方法,效果通过Toast观察。 第一种:在布局文件(XML)直接在button控件下添加属性onclick,属性的内容即为按键的响应方法。(方法权限必需为pu...
  • wait7676
  • wait7676
  • 2015年02月04日 21:08
  • 336

设置窗体响应键盘的优先级设为最高

this.KeyPreview = true;
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2016年02月18日 20:44
  • 275

多个WebBrowser的按键响应

使用场景: 多个WebBrowser同时使用, 分别响应回车, 右键菜单等事件 已在Delphi xe测试通过 //单元文件 unit Unit11; interface use...
  • simonhehe
  • simonhehe
  • 2013年01月10日 09:42
  • 1638

C++按键响应

#include #include using namespace std; #define ESC 0x1b // scan code for ESC character int ...
  • owldestiny
  • owldestiny
  • 2011年01月14日 17:06
  • 4730

MCU实战经验:多种的按键处理

之前的一个项目按键比较多,面板上面有按键,遥控器,处理的稍微复杂一点,MCU使用的是STM8S005K6. 关于按键部分的处理,现在拿处理来和大家分享一下,说的不对的地方还请各位大侠请教,大家共同进步...
  • kevinhg
  • kevinhg
  • 2015年08月25日 00:04
  • 5384

GTK进阶学习:键盘事件

键盘事件,可以理解为操作键盘的动作。对于窗口而言,用户操作键盘,窗口检测到键盘的操作( 产生一个信号 ),然后去做相应处理( 调用其规定的回调函数 ),即可认为是键盘事件,还是信号与回调函数的知识点。...
  • tennysonsky
  • tennysonsky
  • 2015年01月27日 14:48
  • 1914

Android 中处理POWER/HOME流程

Android 按键处理流程 Android Power 处理流程 Android HOME 处理流程 Android 关机/重启处理流程...
  • cpwolaichile
  • cpwolaichile
  • 2016年03月09日 10:47
  • 1091

键盘消息处理(按下某个键,响应一个函数)

可以利用PreTranslateMessage(MSG* pMsg) 函数来对键盘消息进行处理 例如:
  • foreverhuylee
  • foreverhuylee
  • 2014年07月17日 17:15
  • 2930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:appweight多个按键响应处理
举报原因:
原因补充:

(最多只允许输入30个字)