android widget 開發例項 : 桌面便籤程式的實現詳解和源
原文地址為:
如有錯漏請不吝拍磚指正,轉載請註明出處,非常感謝
桌面便籤軟體是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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android開發資料便籤Android
- Android開發:ContentProvider例項詳解AndroidIDE
- jQuery實現的刪除指定標籤程式碼例項jQuery
- 實現Web桌面託拽的例項Web
- win10桌面便籤怎麼新增_win10便籤如何固定在桌面Win10
- 小米開源便籤Notes-原始碼研究(2)-定時提醒的便籤原始碼
- vuejs實現新增tag標籤程式碼例項VueJS
- 把你的程式放到桌面——Android桌面部件WidgetAndroid
- Flutter完整開發實戰詳解(六、 深入Widget原理)Flutter
- Python程式和執行緒例項詳解Python執行緒
- jQuery和css3實現的開關效果程式碼例項jQueryCSSS3
- Java開發中的事件驅動模型例項詳解Java事件模型
- OC開發例項變數的訪問控制詳解變數
- Mac桌面便籤工具——Handy Note for MacMac
- js和css實現的扇子展開和摺疊效果程式碼例項JSCSS
- 使用electron+vue開發一個跨平臺todolist(便籤)桌面應用Vue
- win10如何讓便籤顯示在桌面上 win10便籤固定在桌面置頂Win10
- jquery實現的下拉和收縮程式碼例項jQuery
- js實現開啟應用程式程式碼例項JS
- android移動開發簡單的開發例項Android移動開發
- HTML 使用表單標籤實現註冊頁面的例項程式碼HTML
- ul和li實現的新聞列表程式碼例項
- 好用的win10電腦桌面便利貼,桌面便籤小工具Win10
- Android 網路通訊API的選擇和實現例項AndroidAPI
- canvas實現的刮刮樂程式碼例項Canvas
- tcl/tk例項詳解——catch和errorError
- Android UI 開發之實現底部切換標籤AndroidUI
- Android專案自動生成uml圖(以小米便籤為例)Android
- js實現的控制table指定行的隱藏和現實程式碼例項JS
- curl例項詳解
- sudo 詳解+例項
- 實現工具自由,開源的桌面工具箱
- MyCat分片:水平拆分例項解析和程式碼實現!
- jQuery實現的tab選項卡程式碼例項jQuery
- jquery實現的選項卡效果例項程式碼jQuery
- Android輪播圖控制元件的實現詳解(附GitHub開源連結)Android控制元件Github
- css3實現的開關按鈕程式碼例項CSSS3
- mix-blend-mode實現桌面時鐘小掛件效果程式碼例項