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效果如图:



最后是代码的地址:

点击打开链接

你可能感兴趣的:(AppWidget应用(二)---PendingIntent 之 getActivity)