android widget 開發例項 : 桌面便籤程式的實現詳解和源

hahadelphi發表於2021-09-09

原文地址為:

如有錯漏請不吝拍磚指正,轉載請註明出處,非常感謝

 


桌面便籤軟體是android上常用軟體的一種,比如比較早的Sticky Note,就曾非常流行,

Sticky Note的介紹可以參見  

 

而實際上使用android平臺對widget開發的支援,桌面便籤類軟體是非常易於開發的。

本文透過逐步實現一個簡單的桌面便籤軟體,和大家分享進行widget開發的過程和方法。

 


 打包下載。

(  注意下載下來的包中的檔名可能和我寫的程式中的命名有差異,請注意自行調整。)

 

c. 新增widget時的配置Activity的實現(可選)

android平臺為widget提供一個配置介面的功能,我們可以自定義一個Activity,

在widget引數配置檔案中配置好相關引數後,此Activity會在使用者新增widget時自動呼叫。

 

一般來說,這個配置介面的作用是使用者新建widget時,讓使用者配置widget的一些屬性,比如顏色、大小等等。

但是在我們的這個示例程式中,我們用它來當做建立便籤的地方!

 

不過本節只是先實現一個原型程式,所以暫時不做處理,我們只是新建一個Activity即可。

新建名為MyNoteConf的Activity,重寫onCreate方法,在OnCreate方法中,

由於這個Activity是由系統在新增widget時自動呼叫的,

所以我們可以用getIntent獲取到傳入的widgetId。可以判斷其是否是一個有效的widgetId,

 

最後我們必須返回一個RESULT_OK的Intent,並結束當前Activity,系統才會認為配置成功,在桌面上放置這個widget。

如果返回RESULT_CANCELED,系統會認為配置失敗,終止widget的建立過程。

 

編寫好的MyNoteConf的程式碼如下:

package com.silenceburn; import android.app.Activity; import android.appwidget.AppWidgetManager; import android.content.Intent; import android.os.Bundle; import android.util.Log; public class MyNoteConf extends Activity { int mAppWidgetId; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Log.i("myLog"," on WidgetConf ... "); setResult(RESULT_CANCELED); // Find the widget id from the intent. Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } // If they gave us an intent without the widget id, just bail. if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) { finish(); } // return OK Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); setResult(RESULT_OK, resultValue); finish(); } }

 

d. widget 引數配置檔案

最後我們需要編寫一個widget引數配置檔案,將佈局檔案、配置Activity關聯起來。

我們在res下新建目錄xml,在xml目錄下新增檔案 my_note_widget.xml ,編寫如下:

地址是:http://blog.csdn.net/silenceburn/archive/2010/12/23/6094705.aspx

 


轉載請註明本文地址:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2809409/,如需轉載,請註明出處,否則將追究法律責任。

相關文章