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

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

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

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

单击按钮之后。

跳转到targetActivity

源代码项目下载地址。

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

exampleAppWidgetProvider.JAVA代码

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

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

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

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

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

用appwidget_info去连接布局与widget

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

而在AndroidManifis中配置  appwdiget_info

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

这里的MainActivity 没用作用的。

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

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

2011-09-07 13:00:36

2011-09-07 10:34:48

Android Wid

2011-09-07 13:42:36

Android Wid实例

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学习笔记

2011-09-09 11:05:56

Widget

2012-04-19 16:41:24

Titanium视频实现页面跳转

2011-09-07 14:20:42

Android Wid组件

2011-09-14 16:58:47

Android SDK

2010-06-13 09:45:35

Widget开发

2011-09-08 15:51:33

Android Wid组件

2011-09-08 15:07:10

Android Wid搭建

2010-07-13 09:02:19

Widget开发

2011-03-14 09:55:25

AndroidWidget

2011-09-13 15:35:40

Widget
点赞
收藏

51CTO技术栈公众号