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




多个WebBrowser的按键响应

使用场景: 多个WebBrowser同时使用, 分别响应回车, 右键菜单等事件 已在Delphi xe测试通过 //单元文件 unit Unit11; interface use...

状态机方式实现多个独立按键扫描

  • 2017年07月19日 22:51
  • 31.04MB
  • 下载

找茬游戏 多个按钮的按键监听

  • 2015年08月14日 10:33
  • 2.77MB
  • 下载

多功能检测按键 单按 长按 多个按键 响应方式

按键有效检测方式:1:单按键响应 2:多按键响应 3:长按单个按键响应 4:长按多个按键响应 5:以上响应的方式都可以选择释放后响应和按下马上响应...

简述多个AD按键使用双通道实现

AD按键多,单通道实现易窜键,这时候可以考虑使用双通道实现。 原理: 本质还是单通道的实现方法,由于单条通道的采样不会大于1023,所以将二条通道上面的按键AD值都增加1000,第一条通道...

Android 处理按键的响应方式

  • 2011年09月26日 15:40
  • 180KB
  • 下载

Android 仿钉钉组织架构功能,动态创建多个按钮,并给每个按键添加监听事件

现在基本上很多的企业都会使用钉钉,然后细心地人会看到钉钉组织架构功能。在联系人中放着一个可以展开的公司,下面有组织架构和自己所在的部门。 现在我们产品经理说我们项目中也要加入组织架构功能,而且给个...
  • SYIF88
  • SYIF88
  • 2017年03月29日 15:44
  • 1412

多个按键绑定同一个监听器,并实现按下,弹起进行不同操作

android多个按键绑定同一个监听器,可以大大减少代码的冗余量,提高代码效率.不管是OnClickListener还是OnTouchListener监听器,其实现方法里面都传进来了一个参数View ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:appweight多个按键响应处理
举报原因:
原因补充:

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