Android的ApiDemo範例庫提供了一個很不錯的App Widget範例;不過,對初學者來說,這個範例可能稍嫌繁瑣。在這裡另外提供一個HelloAppWidget範例如下:
/* 範例:HelloAppWidget.java */ package com.moko.hellowidget; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.widget.RemoteViews; public class HelloAppWidgetProvider extends AppWidgetProvider { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; for (int i=0; i<N; i++) { int appWidgetId = appWidgetIds[i]; updateAppWidget(context, appWidgetManager, appWidgetId); } } public void onDeleted(Context context, int[] appWidgetIds) { } static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { CharSequence text; text = "www.jollen.org"; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); views.setTextViewText(R.id.appwidget_text, text); appWidgetManager.updateAppWidget(appWidgetId, views); } }
一個很簡單的App Widget就是只需要這麼幾行程式碼,HelloAppWidget範例就是先前的App Widget操作示範使用的範例,HelloAppWidget會在桌面嵌進一個TextView組件,並顯示”www.jollen.org”字串。
由此範例可以了解,App Widget使用到Android提供的AppWidgetProvider類別,建議可以先行快速瀏覽Android Reference文件,以了解此類別的大略用法。
App Widget的設計流程
設計一個App Widget的流程,並不是由寫程式開始,所以上述的範例程式,並不是首要的重點。實作一個App Widget的過程,用到了過去教學裡的所有觀念,因此對以下的流程述描有不了解的地方,可以再回頭覆習過去的教學。
App Widget設計流程:
1. 規劃App Widget的大小以及更新時間,在res/xml/裡新增一份XML文件,命名為appwidget_provider.xml
2. 規劃App Widget的UI,修改res/layout/main.xml
3. 撰寫App Widget主程式,如上例
4. 編輯AndroidManifest.xml,設定App Widget可接受App Widget的更新事件:android.appwidget.action.APPWIDGET_UPDATE
換個角度來看,設計一個陽春版的App Widget至少需要以下4個檔案:
有了設計流程後,接下來一一說明每個步驟的實作,以及技術重點。
Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue
您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw