Android Widget实现跳转及源码学习教程

移动开发
Android Widget实现跳转及源码学习教程是本文是要介绍的内容,主要是来了解并学习Android Widget源码的应用,具体内容的学习来看本文详解。

Android Widget实现跳转及源码学习教程是本文是要介绍的内容,主要是来了解并学习Android Widget源码的应用,具体内容的学习来看本文详解。 

创建一个widget app 只有一个简单的按钮。

单击按钮之后。

跳转到targetActivity

源代码项目下载地址。

  1. FTP地址:ftp://www.linuxidc.com  
  2. 用户名:www.linuxidc.com  
  3. 密码:www.muu.cc 

exampleAppWidgetProvider.JAVA代码

  1. package zhang.AppWidget;    
  2. import Android.app.PendingIntent;    
  3. import Android.appwidget.AppWidgetManager;    
  4. import Android.appwidget.AppWidgetProvider;    
  5. import Android.content.Context;    
  6. import Android.content.Intent;    
  7. import Android.widget.RemoteViews;    
  8. public class exampleAppWidgetProvider extends AppWidgetProvider{    
  9.     
  10.     @Override    
  11.     public void onUpdate(Context context, AppWidgetManager appWidgetManager,    
  12.             int[] appWidgetIds) {    
  13.         System.out.println("onupdate");    
  14.         for(int i=0;i<appWidgetIds.length;i++){    
  15.             System.out.println(appWidgetIds[i]);    
  16.             Intent intent = new Intent(context,TargetActivity.class);    
  17.             PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);    
  18.             RemoteViews remoteViews =new RemoteViews(context.getPackageName(),R.layout.appwidget);    
  19.             remoteViews.setOnClickPendingIntent(R.id.button,pendingIntent);    
  20.             appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);    
  21.         }    
  22.         super.onUpdate(context, appWidgetManager, appWidgetIds);    
  23.     }    
  24.     @Override    
  25.     public void onDeleted(Context context, int[] appWidgetIds) {    
  26.         System.out.println("onDeleted");    
  27.         super.onDeleted(context, appWidgetIds);    
  28.     }    
  29.     @Override    
  30.     public void onDisabled(Context context) {    
  31.         System.out.println("onDisabled");    
  32.         super.onDisabled(context);    
  33.     }    
  34.     @Override    
  35.     public void onEnabled(Context context) {    
  36.         System.out.println("onEnabled");    
  37.         super.onEnabled(context);    
  38.     }    
  39. }  

target 只有简单的现实了一个textView

  1. package zhang.AppWidget;     
  2. import Android.app.Activity;     
  3. import Android.os.Bundle;     
  4. public class TargetActivity extends Activity{     
  5.     @Override     
  6.     protected void onCreate(Bundle savedInstanceState) {     
  7.         // TODO Auto-generated method stub      
  8.         super.onCreate(savedInstanceState);     
  9.            setContentView(R.layout.main);     
  10.     }     
  11. }   

appwidget  这个是widget在桌面的布局文件

  1. <?xml version="1.0" encoding="utf-8"?>     
  2. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"     
  3.     Android:orientation="vertical"     
  4.     Android:layout_width="fill_parent"     
  5.     Android:layout_height="fill_parent"     
  6.     >     
  7. <TextView       
  8.     Android:id="@+id/widgetTextId"     
  9.     Android:layout_width="fill_parent"      
  10.     Android:layout_height="wrap_content"      
  11.     Android:text="firstWidgetText"     
  12.     Android:background="#000000"     
  13.     />     
  14. <Button      
  15. Android:layout_width="fill_parent"      
  16. Android:layout_height="wrap_content"      
  17. Android:id="@+id/button"      
  18. Android:text="@string/target"></Button>     
  19.          
  20. </LinearLayout>   

用appwidget_info去连接布局与widget

  1. <appwidget-provider xmlns:Android="http://schemas.android.com/apk/res/android"     
  2.     Android:minWidth="294dp"     
  3.     Android:minHeight="72dp"     
  4.     Android:updatePeriodMillis="86400000"     
  5.     Android:initialLayout="@layout/appwidget"     
  6.  >     
  7. </appwidget-provider>  

而在AndroidManifis中配置  appwdiget_info

  1. <?xml version="1.0" encoding="utf-8"?>     
  2. <manifest xmlns:Android="http://schemas.android.com/apk/res/android"     
  3.       package="zhang.AppWidget"     
  4.       Android:versionCode="1"     
  5.       Android:versionName="1.0">     
  6.     <uses-sdk Android:minSdkVersion="7" />     
  7.      
  8.     <application Android:icon="@drawable/icon" android:label="@string/app_name">     
  9.         <activity Android:name=".MainActivity"     
  10.                   Android:label="@string/app_name">     
  11.             <intent-filter>     
  12.                 <action Android:name="android.intent.action.MAIN" />     
  13.                 <category Android:name="android.intent.category.LAUNCHER" />     
  14.             </intent-filter>     
  15.         </activity>     
  16.         <activity Android:name=".TargetActivity"/>     
  17.         <receiver Android:name="exampleAppWidgetProvider">     
  18.             <intent-filter>     
  19.                 <action Android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>     
  20.             </intent-filter>     
  21.             <meta-data Android:name="android.appwidget.provider"     
  22.                     Android:resource="@xml/appwidget_info"/>     
  23.         </receiver>     
  24.      
  25.     </application>     
  26. </manifest>   

这里的MainActivity 没用作用的。

小结:Android Widget实现跳转及源码学习教程的内容介绍完了,希望通过Android Widget源码内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: Linux社区
相关推荐

2011-09-07 13:42:36

Android Wid实例

2011-09-07 10:34:48

Android Wid

2011-09-07 13:00:36

2011-09-08 11:43:32

GTK Widget

2011-09-07 16:28:46

QT WidgetQWidget

2011-09-08 15:40:45

Android Wid组件

2011-09-07 11:15:25

2011-09-07 14:25:53

Android Wid设计

2011-09-08 11:18:53

Widget

2011-04-12 17:16:52

Activity跳转开发实例Android学习笔记

2012-04-19 16:41:24

Titanium视频实现页面跳转

2011-09-09 11:05:56

Widget

2011-09-09 10:19:13

2011-09-07 14:20:42

Android Wid组件

2011-05-27 16:57:13

Android widget

2011-09-09 20:14:58

Android Wid

2011-09-08 15:51:33

Android Wid组件

2011-09-08 15:07:10

Android Wid搭建

2011-03-14 09:55:25

AndroidWidget

2010-07-13 09:02:19

Widget开发
点赞
收藏

51CTO技术栈公众号