在App Widget中添加Button并实现监听

PendingIntent:

创建方法:

     getActivity(Context, int, Intent, int),

     getBroadcast(Context, int, Intent, int),

     getService(Context, int, Intent, int);

 

RemoteViews的作用:

1.该对象表示了一系列的View对象。

2.RemoteViews所表示的对象运行在另外的进程中。

 此项目接着http://yinger-fei.iteye.com/admin/blogs/1173658的创建小部件项目开始写。

 这次程序功能:在App Widget中添加Button并实现监听。

1.向App Widget中添加Button

 

  <Button 
  	android:id="@+id/widgetButtonId"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="測試用按鈕"
  />

 

2.为Button绑定处理器

注意:由于App Widget和应用程序运行在不同的进程中(App Widget中的view运行在Home Screen进程中),所以无法按之前惯用的方法绑定监听器。

 

remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);

 在extends AppWidgetProvider的类中。实现onUpdate方法

 

@Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager,
			int[] appWidgetIds) {
		//ystem.out.println("onupdate");
		for(int i=0;i<appWidgetIds.length;i++){
			System.out.println(appWidgetIds[i]);
			//创建一个Intent对象
			Intent intent=new Intent(context,TargetActivity.class);
			//创建一个PendingIntent
			PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
			
			RemoteViews remoteViews=new RemoteViews(context.getPackageName(),R.layout.example_appwidget);
			//为按钮绑定事件处理器
			//参数含义 1 被绑定控件的id 2 事件发生时,那个pendingintent被执行
			remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);
			//更新appwidget
			//参数含义 1 被更新appwidgetid
			appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
		}

 

 这里显示的效果就是点击button时,跳转到另外一个Activity。使用的是getActivity();

你可能感兴趣的:(button)