Android ရဲ ့ data store ၏ နောက်ကွယ် (၁.၁)

Data store အကြောင်းပထမပိုင်းတုန်းက ကျူတိုရီရယ်မှာ ကိုသာသာက home screen widget တွေမှာ sharedpreference သုံးလို့ ရမရ မေးလာပါတယ်။ ဒါကြောင့်ဒီ ကျူတိုရီရယ်လေးကို ရေးတာပါ။ ဒီကျူတိုရီရယ်လေး ပြီးရင် home screen widget ဘယ်လိုလေး လုပ်ရလဲ သိသွား မှာပါ။

အောက်မှာပြထားတဲ့ screen မှာတော့ home screen widget လေးမှာ button လေးတစ်ခုထည့်ထားပြီးတော့ button ကို နှိပ်ရင်တော့ screen တစ်ခုကို သွားခိုင်း ထားပါတယ်။ အဲ့ဒီ screen ရဲ ့ activity မှာတော့ buttonwidget မှာတုန်းက ထည့်ခဲ့တဲ့ sharedpreference ကို EditText နဲ့ပြန်ထုတ်ပြ ထားပါတယ်။

အရင်ဆုံးအနေနဲ့ Manifest.xml ကိုကြည့်ကြရအောင်။

<application></application> ဆိုတဲ့ tag လေးကိုကြည့်လိုက်ရင် receiver တစ်ခု activity တစ်ခုထည့်ထားပါတယ်။ ဟုတ်ပါတယ် home screen widget လေးသည် broadcast receiver ပါ။ widget လေးကို နှိပ်လို့ လိုက်ရင်တော့ .ClickOneActivity ကိုကူးမှာပါ။

Receiver ထဲမှာ ရေးထားတဲ့ meta-data  သည် res/xml folder အောက်မှာ widget_provider.xml လေးကိုညွှန်းချင်တာပါ။ <appwidget-provider> tag မှာကိုယ့် widget လေးရဲ့ size တွေ width တွေ သတ်မှတ်ပေးနိုင်ပါတယ်။

Home screen widget ရဲ့ layout ကတော့ main.xml ပါ။ နောက် screen ကတော့ configure.xml ပါ။

Buttonwidget.java တွင်

အခု စပြီး home screen widget မှာပေါ်ချင်တာတွေ စပြီးရေးပါမယ်။ widget application လေး create လုပ်ချင်ရင် (၁) ပထမဆုံးအနေနဲ့ widget လေးမှာပေါ်မယ့် interface အတွက် Remote View ကို create လုပ်ရပါမယ်။(၂) ပြီးရင်တော့ အဲ့ဒီ Remote View ကို AppWidgetProvider ဆိုတဲ့ interface ကို implement လုပ်ထားတဲ့ activity နဲ့ တွဲပေးရပါမယ်။ အပေါ်မှာ ပြထားတဲ့ buttonwidget လေးသည် AppWidgetProvider interface ကို extends လုပ်ထားတဲ့အတွက်သူ့မှာပေးထားတဲ့ method() တွေကို ကိုယ်က implement လုပ်နိုင်ပြီပေါ့။ ဒီတော့ ဘာ method() တွေများ implement လုပ်နိုင်တာတုန်း ဆိုတာ ကြည့်ရအောင်။

  • onEnabled(): App widget ကိုစပြီး create လုပ်တာနဲ့ ဒီ method ကိုခေါ်မှာပါ။ဖြစ်နိုင်ရင်တော့ ကိုယ်တလျှောက်လုံးသုံးစရာ လိုမယ့် global initialization တွေဒီမှာ လုပ်တာကောင်းပါတယ်။
  • onDisabled(): သူကတော့ onEnabled() method နဲ့ဆန့်ကျင်ဘက်ဘဲ။ ဒီတော့ Global နဲ့ပတ်သက်လို့ရှင်းစရာရှိတာ သူ့မှာရှင်းတာကောင်းပါတယ်။
  • onUpdate():App Widget ကနေသူ့ရဲ့ View ကိုupdate လုပ်ချင်ရင်ခေါ်ပါတယ်။ နာရီတွေလိုမျိုး ၁ စက္ကန့်တစ်ခါပြောင်းချင်တဲ့ အခါသုံးနိုင်ပါတယ်။
  • onDeleted():App Widget ရဲ ့ instance ကို delete အလုပ်ခံရတဲ့အခါ ဒီ method ကို ခေါ်မှာပါ။
  • onReceive(): ဒီ ရဲ ့ default implementation တွေကို ဖြေရှင်းပေးရတာတော့ BroadcastReceiver ပါ။ ထို့နောက် သက်ဆိုင်ရာ method တွေကို ခေါ်ပေးပြီး အလုပ်ပြီးမြောက်စေပါတယ်။

ဒီတော့ onUpdate() method မှာအခုလိုရေးလိုက်ပါမယ်။

ClickoneActivity.java မှာတော့ sharepreference ထဲက data ကို EditText View ထဲမှာပြန်ထုတ်ပြထားပါတယ်။


အခုအချိန်မှာ ဒီ widget လေးကို screen မှာ မပေါ်ချင်တော့ဘူးဆိုရင်တော့ အဲ့ဒီ widget လေးမှာ ခဏ လေးဖိထားပြီး အမှိုက်ပုံးပုံ လေး အောက်မှာ ပေါ်လာရင်တော့ dragဆွဲပြီး ထည့်ပေးလိုက်ပါနော်။

Happy with Android!

(မေးမြန်းအကြံပြုချက်များကို ကြိုဆိုလျက်)

(7/8/2010)

Facebook comments:

One Response

  1. [...] ၉. Android ရဲ ့ data store ၏ နောက်ကွယ် (၁.၁) [...]

Leave a comment


*