AppWidget应用(二)---PendingIntent 之 getActivity


    通过AppWidget应用(一)的介绍,我们已经知道如何创建一个在主界面上显示一个appWidget窗口,但这并不是我们的目的,我们需要做到程序与用户之间进行交互;下面来介绍下如何通过appWidget启动一个Activity。

一、在appWidget的布局文件中添加一个按钮

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" 

    android:orientation="vertical">



    <TextView

        android:id="@+id/txtapp"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:background="#ffffff"

        android:text="test" >

    </TextView>



 <Button android:id="@+id/btnSend" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Send" > </Button>



</LinearLayout>

 


二、在appWidget上为按钮添加监听函数

 

@Override

	public void onUpdate(Context context, AppWidgetManager appWidgetManager,

			int[] appWidgetIds) {

		// TODO Auto-generated method stub

		//遍历本程序启动的appWidget

		for (int i = 0; i < appWidgetIds.length; i++) {

			System.out.println("-----------appWidgetIds[] = " + appWidgetIds[i]);

			// 创建一个Intent对象

			Intent intent = new Intent(context, targetActivity.class); // 启动一个Activity

			// 创建一个PendingIntent对象 打开一个Activity

			PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,

					intent, 0);

			RemoteViews remoteViews = new RemoteViews(context.getPackageName(),

					R.layout.appwidgetlayout);

			// 为按钮绑定监听器

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

			// 更新App

			appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);

		}

		super.onUpdate(context, appWidgetManager, appWidgetIds);

	}

targetActivity 就是点击按钮时要启动的Activity

 

按照AppWidget应用(一)中的方法启动后的appWidget效果如图:



最后是代码的地址:

点击打开链接

 

你可能感兴趣的:(pendingintent)