zoukankan      html  css  js  c++  java
  • 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效果如图:



    最后是代码的地址:

    点击打开链接

  • 相关阅读:
    k8s 重要概念
    k8s 核心功能
    5 秒创建 k8s 集群
    学习 Kubernetes 的 Why 和 How
    Yeelink初步体验
    为Qemu aarch32添加BeautifulSoup4模块
    实现Qemu aarch32虚拟开发板ping www.baidu.com
    利用/proc/pid/pagemap将虚拟地址转换为物理地址
    加快Qemu Aarch32虚拟开发板的启动速度
    为Qemu aarch32开发板添加sd卡
  • 原文地址:https://www.cnblogs.com/riskyer/p/3285594.html
Copyright © 2011-2022 走看看