Android Widget實(shí)現(xiàn)跳轉(zhuǎn)及源碼學(xué)習(xí)教程
Android Widget實(shí)現(xiàn)跳轉(zhuǎn)及源碼學(xué)習(xí)教程是本文是要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)Android Widget源碼的應(yīng)用,具體內(nèi)容的學(xué)習(xí)來(lái)看本文詳解。
創(chuàng)建一個(gè)widget app 只有一個(gè)簡(jiǎn)單的按鈕。
單擊按鈕之后。
跳轉(zhuǎn)到targetActivity
源代碼項(xiàng)目下載地址。
- FTP地址:ftp://www.linuxidc.com
- 用戶名:www.linuxidc.com
- 密碼:www.muu.cc
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);
- }
- }
target 只有簡(jiǎn)單的現(xiàn)實(shí)了一個(gè)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);
- }
- }
appwidget 這個(gè)是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>
用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>
而在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>
這里的MainActivity 沒(méi)用作用的。
小結(jié):Android Widget實(shí)現(xiàn)跳轉(zhuǎn)及源碼學(xué)習(xí)教程的內(nèi)容介紹完了,希望通過(guò)Android Widget源碼內(nèi)容的學(xué)習(xí)能對(duì)你有所幫助!