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

来源:互联网 发布:装饰公司预算软件 编辑:程序博客网 时间:2024/06/05 20:22


    通过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上为按钮添加监听函数

@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {// TODO Auto-generated method stub//遍历本程序启动的appWidgetfor (int i = 0; i < appWidgetIds.length; i++) {System.out.println("-----------appWidgetIds[] = " + appWidgetIds[i]);// 创建一个Intent对象Intent intent = new Intent(context, targetActivity.class); // 启动一个Activity// 创建一个PendingIntent对象 打开一个ActivityPendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent, 0);RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.appwidgetlayout);// 为按钮绑定监听器remoteViews.setOnClickPendingIntent(R.id.btnSend, pendingIntent);// 更新AppappWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);}super.onUpdate(context, appWidgetManager, appWidgetIds);}
targetActivity 就是点击按钮时要启动的Activity

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



最后是代码的地址:

点击打开链接

原创粉丝点击