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



最后是代码的地址:

点击打开链接

 

posted on 2013-08-27 18:20  you Richer  阅读(239)  评论(0编辑  收藏  举报