Lesson 8 (Gravity & Layout Gravity)
ကြၽန္ေတာ္ lesson 7 မွာေၾကာ္ျငာခဲ့တဲ့အတိုင္း Gravity နဲ႔ Layout Gravity အေၾကာင္းတင္ေပးမွာ ျဖစ္ပါတယ္။
Gravity ဆိုတာ Item ေတြကို အလယ္ ဘယ္ ညာ အေပၚ ေအာက္ ထားတာပါ။ ဥပမာ Layout တစ္ခုထဲမွာ Button တစ္ခုပါမယ္ဗ်ာ။ အဲ့Buttonကို Layout ရဲ႕ အေပၚမွာထားမလား အလယ္မွာထားမလား ေအာက္မွာထားမလား။ ကိုယ္ထားခ်င္တဲ့ေနရာကို Gravity နဲ႔သံုးၿပီိးထားပါတယ္။ Gravity ကို Linear Layout မွာပဲသံုးလို႔ရပါတယ္။
ဥပမာနဲ႔ေျပာမယ္ေနာ္။ Button တစ္ခုကို အေပၚမွာထားခ်င္တယ္ဆိုရင္
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"/>
</LinearLayout>
အဲ့လိုထည့္ရပါတယ္။
android:gravity ကိုစစလုပ္ခ်င္း project အသစ္လုပ္တိုင္း center ေပးထားပါတယ္။ အဲ့code ေတြကို Run ရင္ အလယ္တည့္တည့္မွာ ခလုပ္တစ္ခုရပါတယ္။ android:gravity ကို Limear Layout ထဲမွာထည့္ထားလို႔ </LinearLayout> မပိတ္မခ်င္းၾကားထဲမွာ ႐ွိတဲ့ item ေတြအကုန္လံုး အလယ္မွာပဲ ႐ွိေနပါလိမ့္မယ္။ ေနာက္တစ္မ်ိဳးလုပ္ၾကည့္တာေပါ့။
Button ကိုအေပၚမွာထားမယ္ဆိုရင္ center ေနရာမွာ top လို႔ထည့္လိုက္ပါ။
ဘယ္ဘက္မွာကပ္ခ်င္ရင္ left
ညာဖက္မွာကပ္ခ်င္ရင္ right
အေပၚမွာဆို top
ေအာက္ဖက္ကပ္ရင္ bottom
ေဒါင္လိုက္အလယ္ဆိုရင္ center_vertical
အလ်ားလိုက္အလယ္ဆိုရင္ center_horizontal
အဲ့key ေလးေတြ ထည့္ၿပီး စမ္းၾကည့္ပါ။ ေနာက္ထပ္႐ွိပါေသးတယ္။ အသံုးနည္းလို႔မေျပာျပေတာ့တာပါ။
•Layout Gravity
Gravity မွာက center လို႔ေခၚလိုက္ရင္ အကုန္လံုးက အလယ္မွာခ်ည္းေရာက္ေနတယ္ဗ်ာ။ အခုကိုယ္လိုခ်င္တာက ဘယ္မွာတစ္ခု ညာမွာ တစ္ခုဆိုရင္ေတာ့ Layout gravity ကိုသံုးပါတယ္။ အေပၚက tutorial မွာလုပ္ခဲ့တဲ့ android:gravity="center" ဆိုတဲ့စာေၾကာင္းကိုဖ်က္လိုက္ပါ။
ၿပီးရင္
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_gravity="left"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_gravity="right"/>
</LinearLayout>
အဲ့တိုင္းထည့္လိုက္ပါ။ အဲ့က်ရင္ ဘယ္တစ္ခု ညာတစ္ခုျဖစ္ေနပါလိမ့္မယ္။
မ်ားေသာအားျဖင့္ Layout Gravityကို Layout ႏွစ္ဆင့္သံုးရင္ ပိုၿပီးအသံုးမ်ားပါတယ္။ ဥပမာ Linear Layout ထဲမွာ Linear Layout ထပ္ထည့္မယ္ဆိုရင္ Layout Gravity ကိုသံုးပါတယ္။ အေသးစိတ္ကို ေနာက္ tutorial ေတြမွာ အင့္ရင္သင့္သလို ႐ွင္းျပေပးသြားပါမယ္။
မ႐ွင္းလင္းတာေတြကို Comment မွာေမးသြားႏိုင္ပါတယ္။
သင္၏comment တစ္ေၾကာင္းသည္ ကြၽန္ုပ္အတြက္ ေနာက္ပိုစ့္မ်ားတင္ရန္ အားေဆးတစ္ခြက္ ျဖစ္ေစပါလိမ့္မည္။
Lesson 7 (Layout & Size)
ဒီေန႔တင္ေပးမွာက အေရးအႀကီးဆံုးအခန္းျဖစ္တဲ့ Layout အခန္းပါ။ ဘာျဖစ္လို႔အေရးႀကီးတာလဲဆိုေတာ့ ေဆာ့ဝဲတိုုင္းမွာ သံုးရမွာမို႔လို္ပါ။ ကြၽန္ေတာ္ကလဲ တစ္ခုေလာက္တင္ေပးၿပီး ၁ပတ္ေလာက္နားတာဆိုေတာ့ မွတ္မိေသးလားမသိပါဘူး။
•Layout ဆိုတာ နားလည္ေအာင္ေျပာရရင္ အလႊာေပါ့ဗ်ာ။ သူမ်ားေတြကေတာ့ ဘယ္လိုအဓိပၸါယ္ ဖြင့္လဲမသိဘူး။ ကြၽန္ေတာ္က နားလည္ေအာင္ေျပာလိုက္တာပါ။ ဥပမာတစ္ခုေျပာပါမယ္။ button တစ္ခုကိုလုပ္မယ္ဆို button ရဲ႕code ေတြျဖစ္တဲ့
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"/>
ဆိုတဲ့code ေတြကို ထည့္ရပါတယ္။ ဒီနည္းကို lesson 3 မွေျပာထားၿပီသားပါ။ button apk တစ္ခုလုပ္ရင္ အဲ့ဒါနဲ႔ပဲမၿပီးပါဘူး။ project အသစ္လုပ္လိုက္ရင္ ဘာမွမထည့္ခင္ေပၚတဲ့code ေတြမွာ <LinearLayout .........> ဆိုၿပီးေတာ့ စေပးထားၿပီ </LinearLayout> ဆိုၿပီး ျပန္ပိတ္ေပးထားပါတယ္။ အဲ့ဒါ Layout တစ္ခုပါ။
Layout ႏွစ္မ်ိဳး႐ွိပါတယ္။ LinearLayout နဲ႔ RelativeLayout ဆိုၿပီး႐ွိပါတယ္။ LinearLayout က သူ႔ထဲမွာထည့္မယ့္ item(buttonတို႔textField)တို႔ကို LinearLayout ကေနလွမ္းထိန္းခ်ဳပ္ႏိုင္ၿပီးေတာ့ RelativeLayout ကေတာ့ Item ေတြကိုယ္တိုင္ ထိန္းခ်ဳပ္ႏိုင္ပါတယ္။ ဥပမာ LinearLayout မွာ android:orientation ကို vertical လုပ္ထားမယ္ဆိုရင္ </LinearLayout> မေရာက္သေရြ႔ item ေတြအကုန္လံုးက ေဒါင္လိုက္အေနအထားနဲ႔ စီသြားပါလိမ့္မယ္။
(မွတ္ခ်က္>> Item မ်ားမွာ Button မ်ား Text မ်ား TextField မ်ား ကိုရည္ၫႊန္းသည္။) ၿပိီးေတာ့ android:orientation ကို horizontal လုပ္လိုက္ရင္ </LinearLayout> နဲ႔မပိတ္သေရြ႔ အလ်ားလိုက္အတိုင္း စီသြားပါလိမ့္မယ္။ တကယ္လို႔ <RelativeLayout နဲ႔ဆိုရင္ android:orientation ကအလုပ္မလုပ္ပါဘူး။ သူက item ကေနလုပ္ရတာပါ။ ဥပမာ ခလုပ္တစ္ခုကို အလယ္မွာထားခ်င္ရင္ <Button ဆိုတဲ့ code ေတြထဲမွာ android:layout_gravity="center" ဆိုတာေလးထည့္ရတာေပါ့။ {layout_gravity အေၾကာင္းကို Lesson 8တြင္ ႐ွင္းလင္းေပးသြားပါမည္။} သူကနည္းနည္းေတာ့ အလုပ္႐ႈပ္တယ္။ ဒါေပမယ့္ ခလုပ္ေတြ တစ္ခုနဲ႔တစ္ခု ထပ္ထားလို႔ရတယ္။ ကိုယ္ႀကိဳက္တဲ့ေနရာထားလို႔ရတယ္။ ကြၽန္ေတာ္အၾကံျပဳခ်င္တာကေတာ့ Linear Layout က RelativeLayout ထက္ ပိုလြယ္တာေၾကာင့္ မကြၽမ္းေသးရင္ Linear Layout ပဲသံုးၾကပါလို႔အၾကံျပဳပါတယ္ခဗ်ာ။
•Size
Size ေတြအေၾကာင္းေျပာမယ္ေနာ္။ ကြၽန္ေတာ္လုပ္ခဲ့တဲ့ Lesson ထဲမွာ ေတြ႔မိမွာေပါ့။ android:layout_width တို႔ android:layout_height တို႔။ အဲ့အေၾကာင္းေလးေျပာပါမယ္။ android:layout_width ဆိုတာ အလ်ားလိုက္အက်ယ္ေပါ့။ android:layout_heightဆိုတာက အျမင့္ေပါ့။ သူ႔မွာvalue သံုးမ်ိဳး႐ွိပါတယ္။value ဆိုတာက ညီမ်ွျခင္းထိုးၿပီး "" ထဲေရးတာေပါ့။ ေ႐ွ႕က android:layout_width တို႔ android:layout_heightတို႔ android:textတို႔က key လို႔ေခၚပါတယ္။(ေၾကာ္ျငာဝင္လိုက္တာ :-P :-P ) အေပၚျပန္သြားမယ္ဗ်ာ။ အဲ့ value သံုးမ်ိဳးက-
1• Match_parent
2•Wrap_content
3•Fix Size တို႔ပါ။
•Match_parent
ဒီဟာကေတာ့ အသံုးနည္းပါတယ္။ သူ႔အေၾကာင္းနည္းနည္းေျပာျပမယ္ေနာ္။ ဥပမာ Button ႏွစ္ခုကို အလ်ားလိုက္အတိုင္းထားမယ္ဆိုရင္ button တစ္ခုရဲ႕အက်ယ္ကို screenရဲ႕ ၃ပံုတစ္ပံုေလာက္ထားၿပီး ေနာက္တစ္ခုကို match_parent ထားမယ္ဆို က်န္တဲ့ ၃ပံု၂ပံုကို match_parent ထားတဲ့ ခလုပ္က ယူသြားပါလိမ့္မယ္။ match_parent ကေနာက္ပိုင္း tutorial ေတြလုပ္ရင္း နားလည္သြားပါလိမ့္မယ္။
•Wrap_content
ဒီဟာက ကြၽန္ေတာ္ေ႐ွ႕ပိုင္း lesson ေတြမွာ သံုးခဲ့တဲ့ value ေတြပါ။ wrap_content သံုးရင္ သူ႔ထဲမွာ႐ွိတဲ့ item ေတြ႐ွိသေလာက္ပဲ ေနရာယူတာပါ။ ဥပမာ ခလုပ္တစ္ခုကို wrap_content နဲ႔size ယူမယ္ဆို ခလုပ္မွာထည့္ထားတဲ့ စာလံုး႐ွိသေလာက္ပဲ ေနရာယူမွာပါ။ ဥပမာ ခလုပ္တစ္ခုမွာ android:text က Help လို႔ပဲေရးထားရင္ Help စာလံုးအက်ယ္ေလာက္ပဲ button ကက်ယ္မွာပါ။ ေဘးကိုလည္းမပိုပါဘူး။ တကယ္လို႔ android:text မွာ introduction လို္ေရးထားရင္ေတာ့ button က introduction ဆိုတဲ့ စာလံုးအက်ယ္ေလာက္ က်ယ္သြားၿပီး Help ဆိုတဲ့ Button ထက္ ႀကီးသြားမွာေပါ့။ ဒီေလာက္ဆို wrap_content အေၾကာင္းနားလည္ေလာက္ပါၿပီ။
Fix_size
ဒီမွာႏွစ္မ်ိဳးထပ္ကြဲပါတယ္။
Fill_parentနဲ႔ dp ဆိုတဲ့ ယူနစ္ပါတဲ့ size ပါ။
Fill_parent အေၾကာင္းအရင္ေျပာပါမယ္။ fill_parent ဆိုတာ အျပည့္ယူတာေပါ့။ ဥပမာ ခလုပ္တစ္ခုရဲ႕ အက်ယ္ကို screen အျပည့္ယူခ်င္ရင္ android:layout_width="fill_parent"ဆိုၿပီး သံုးရပါတယ္။ ေနာက္ၿပီး အျမင့္ပါအျပည့္ထပ္ယူခ်င္ရင္ android:layout_height ကို fill_parent လုပ္လိုက္ေပါ့။
ေနာက္တစ္ခုက dp နဲ႔ေရးတာပါ။ dp ဆိုတာ အတိုင္းအတာရဲ႕ ယူနစ္ပါ။ သူက button တို႔ text တို႔ကို တစ္ညီတည္းထားခ်င္ရင္ သံုးတာပါ။ ဥပမာ ခလုပ္ႏွစ္ခုကို အက်ယ္အတူတူပဲ ထားခ်င္ရင္ wrpa_contentလည္းသံုးလို႔မရပါဘူး။ ဘာျဖစ္လို႔လဲဆိုေတာ့ စာလံုးခ်င္းမွမတူတာ။ fill_parent လိုအျပည့္လဲမထားခ်င္ပါဘူး။ အဲ့က်ရင္ ခလုပ္ႏွစ္ခုလံုးရဲ႕ layout_width value ကို 100dp လို႔သံုးပါတယ္။ နည္းနည္းထပ္က်ယ္ခ်င္ေသးရင္ 150dp တို 200dp တို႔ ႀကိဳက္သလို႔သံုးလို႔ရပါတယ္။ height လဲအဲ့တိုင္းပါပဲ ခလုပ္ႏွစ္ခုလံုးကို android:layout_height="80dp" ဆိုၿပီး ႏွစ္ခုလံုးထည့္လိုက္ရင္ အျမင့္တူသြားပါၿပီ။ အဲ့ေလာက္ဆို စိတ္ႀကိဳက္ထည့္ၿပီးသံုးၾကည့္ပါ။
အစကေတာ့ Layout ဆိုၿပီး lesson တစ္ခါ size ဆိုၿပီး lesson တစ္ခါ တင္ေပးမလို႔ပါ။ ႏွစ္ခုလံုးအေရးႀကီးတာမို႔လို႔ တစ္ကြဲတစ္ျပားစီ မျဖစ္ေအာင္ စုတင္ေပးလိုက္တာပါ။ ေနာက္ထပ္ အေသးစိတ္ကို ေနာက္ထပ္Lesson ေတြမွာၾကံဳရင္ၾကံဳသလို ေျပာျပေပးသြားပါမယ္။
အဆင္မေျပတာေလးေတြ comment မွာ ဝင္ေပးႏိုင္ပါတယ္။
သင္၏comment တစ္ေၾကာင္းသည္ ကြၽန္ုပ္အတြက္ ေနာက္ပိုစ့္မ်ားတင္ရန္ အားေဆးတစ္ခြက္ ျဖစ္ေစပါလိမ့္မည္။
အေၾကာင္းအမ်ိဳးမ်ိဳးေၾကာင့္ ကြန္ျပဴတာ မကိုင္ႏိုင္ေသးလို႔ AIDE.apk သံုးရင္း ၾကံဳေတြ႔ရသည့္ ျပသနာေျဖ႐ွင္းနည္း။
ဒီ post ကိုေတာ့ ကြၽန္ေတာ္ကိုယ္တိုင္ မိန္းမက ကြန္ျပဴတာ မဝယ္ေပးေသးေသာေၾကာင့္ AIDE သံုးရင္း ေက်ာ္လႊားခဲ့ရတဲ့နည္းကို ေျပာျပမွာပါ။
AIDE ဟာfree ျဖစ္တဲ့အတြက္ သံုးရတာဟာ ေကာက္ညႇင္းစားၿပီး ပေလြမႈတ္ရသလို လက္ေပါက္ကပ္လွပါတယ္။
java ဖိုင္ ႏွစ္ခုထက္ ပိုၿပီး create လုပ္လို႔မရပါဘူး။ လုပ္မိရင္ ဘဏ္အေကာင့္ေတာင္းပါေလေရာ။ စုဗူးေလာက္ေတာင္းတယ္ဆိုလည္း ဟုတ္ေသး။ တတ္ႏိုင္ဘူးေလ။ဝါသနာပိုးက ေသးမွမေသးပဲ။ သံုးရတာေပါ့။
ကဲေျပာေနရင္ၾကာတယ္။မေျပာရင္မၾကာဘူး။
ကြၽန္ေတာ္နဲ႔ ဘဝတူေတြကေတာ့ ေအာက္ပါ အခ်က္ေတြအတုိင္း အဆင့္ဆင့္လုပ္ေဆာင္ေပးရင္ AIDE နဲ့လည္း Large Projects ေတြ ေရးႏိုင္ပါတယ္။
၁။ ။ AndroidManifest မွာ ကိုယ္လုပ္ခ်င္သေလာက္ java ဖိုင္ရဲ႕နာမည္ေတြကို ေရးနည္းအတိုင္း ေရးေပးပါ။
၁။ ။ ကိုယ့္ project ရဲ႕ တားဂတ္အလိုက္ လိုအပ္မယ့္ ဓာတ္ပံုေတြ၊ သီးခ်င္းေတြ၊ ဗြီဒီယိုေတြ၊ textဖိုင္ေတြ၊ ဘာဖိုင္ေတြ ညာဖိုင္ေတြကို သက္ဆိုင္ရာ folder ေတြမွာ ထည့္ေပးပါ။ android.support.v4တို႔ v7တို႔ ဘာတို႔ကို import လုပ္ရမယ့္ အေျခအေနမ်ိဳးဆိုရင္ အဲ့ဒီ v4,v7ေတြကို ေဒါင္း libs ဆိုတဲ့ folder ေဆာက္ၿပီး ထည့္ေပးလိုက္ပါ။
၃။ ။ ၿပီးရင္ေတာ့ xmlဖိုင္ေတြ ေရးေပါ့။ ကိုယ့္ရဲ႕ ပေရာဂ်က္မွာ java ဖိုင္က လြဲလို႔ တျခားဘာမွ လုပ္စရာမရိွေတာ့ဘူးဆိုရင္ save လိုက္ပါ။သတိထားရမွာက error ရိွေနရင္ လံုးဝ save မရဘူးေနာ္။ဒီေနရာမွာ saveတယ္ဆိုတာ ကိုယ့္ projectထဲမွာ ရိွသမ်ွဖိုင္ေတြကို R.java ဖိုင္ထဲကို ပို႔တာကိုေျပာခ်င္တာ။ error ရိွေနရင္ ႀကိဳက္သေလာက္ save။ R.java ဖိုင္ထဲကို ေရာက္မသြားဘူး။ R.java မွာ မရိွတဲ့ file,folder,idေတြကို javaဖိုင္ေတြကေန လွမ္းေခၚ ခ်ိတ္လို႔မရေတာ့ဘူး။ save ၿပီးရင္ ကိုယ့္ထည့္ခဲ့သမွ် ေရးခဲ့သမွ်ေတြ R.javaမွာ ရိွ မရိွ သြားၾကည့္ေပါ့။ ရိွတယ္ဆိုရင္ AndroidManifestမွာ ကိုယ္ေရးခဲ့တဲ့ javaဖိုင္နာမည္ေတြအတိုင္း ၏သည္ မလြဲေအာင္ javaဖိုင္မ်ားကို ေရးနိုင္ပါျပီ။AndroidManifestမွာ ၅ခုေရးထားရင္ javaဖိုင္ ၅ခုေရးႏိုင္ပါၿပီ။Manifestမွာ ၅ခဆိုရင္ု java ဖိုင္ ၆ခုေရးလို႔မရဘူးေနာ္။
၄။ ။ javaဖိုင္ေတြေရးၿပီးရင္ မsave နဲ႔ေတာ့ ။ run သာ runေတာ့။error ကင္းရင္ Large Project ကို အသင္ဖန္တီးၿပီးသြားပါၿပီ။ Large Projectဆိုတာ AIDE ရဲ႕ အဆိုအတိုင္းေျပာတာေနာ္။ AIDE က javaဖိုင္ ႏွစ္ခုထက္ပိုတဲ့ project ကို large project အျဖစ္သတ္မွတ္ၿပီး full featureအတြက္ ပိုက္ပိုက္ေတာင္းတာကို ရည္ညႊန္းၿပီး သံုးတာပါ။
အဓိက အခ်က္ကေတာ့ ကိုယ္ထည့္လိုက္တဲ့ folder,file,id,stringစတာေတြ ကို R.java ဖိုင္ထဲထည့္ႏိုင္ဖို႔ပဲ။ ၿပီးရင္ေတာ့ ကိုယ္လက္ဝါးေစာင္းထက္ဖို႔ပဲ။
ကဲ...ဒါဆိုရင္ေတာ့ ကြန္ျပဴတာမရိွေသးတဲ့ ဘဝမွာ AIDE ေလးနဲ႔ ဖက္အိပ္ၿပီး အာသာေျဖႏိုင္ပါေသးတယ္လို႔...
သင္၏comment တစ္ေၾကာင္းသည္ ကြၽန္ုပ္အတြက္ ေနာက္ပိုစ့္မ်ားတင္ရန္ အားေဆးတစ္ခြက္ ျဖစ္ေစပါလိမ့္မည္။
Lesson 6 (Hint Text)
Lesson ေတြ ျပန္စၾကတာေပါ့။ Page က Admin အကိုေတြ ျပန္လာလို႔ ခြင့္ယူတာ နည္းနည္းမ်ားသြားတယ္။ :-P :-P
Lesson 6 ကေတာ့သိပ္ေထြေထြထူးထူး မ႐ွိပါဘူး Lesson 5 က Text Field လက္က်န္ေလးပါ။ ဥပမာ Google apk လိုမ်ိဳးပဲ။ Text Field မွာ အေရာင္မွိန္မွိန္ေလးနဲ႔ စာ႐ိုက္လိုက္ရင္ အဲ့စာေလးက ေပ်ာက္သြားတဲ့ စာေလးေပါ့။ ဒီေလာက္ဆို မ်က္စိထဲေပၚလာေလာက္ၿပီးေပါ့။
-ဟုကဲ့
(ကြကိုယ္ပဲေျဖလိုက္တယ္)
အရင္ဆံုးLesson 5 က Text Field ေလးတစ္ခုလုပ္လိုက္ပါ။ မွတ္မိေသးပါတယ္ေနာ္။ မမွတ္မိရင္ျပန္ၾကည့္ေပါ့ဗ်ာ။ အဲ့မွာ <EditText ေနာက္ကေန တစ္ေၾကာင္းဆင္းလိုက္ၿပီး
android:hint="Type your name" အဲ့တာေလးထည့္ၾကည့္ေပါ့။ Type your name ဆိုေတာ့ သင့္နာမည္ေရးပါေပါ့။ code အျပည့္အစံုကို အေပၚက ပံုမွာ ၾကည့္ပါ။ ၿပီးရင္ Run ၾကည့္ေပါ့။
ဒီလိုမွိန္မွိန္ေလးေပၚေနမယ္ေနာ္။ စာ႐ိုက္လိုက္ရင္ auto ေပ်ာက္သြားလိမ့္မယ္။
ဒီတစ္ခုက်ေတာ့ ဥပမာ Browser apk ေလးလုပ္မယ္ေပါ့။ Browser apk မွာ Website address ေရးတဲ့ Box ေလးလုပ္မယ္ေပါ့။ အဲ့က်ရင္ ေ႐ွ႕ဆံုးမွာ Website address ေတြရဲ႕အစ http:// ေလး႐ိုက္စရာမလိုေအာင္အစတည္းက ထည့္ေပးထားမယ္ေနာ္။ အဲ့လိုလုပ္မယ္ဆို <EditText ေနာက္ကေန တစ္ေၾကာင္းဆင္းၿပီး android:text="http://" ဆိုၿပီးထည့္ေပးလိုက္မယ္ေပါ့။ ၿပီးေတာ့ inputType ကို textUri လို႔ေပးလိုက္ေပါ့။ android:inputType="textUri" ေလးေပါ့ အဲ့က်ရင္ Keyboard မွာ .com ဆိုတဲ့ခလုပ္ေလးပါလာလိမ့္မယ္ေပါ့။
Code အျပည့္အစံုက
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address"
android:textSize="20sp"/>
<EditText
android:layout_height="wrap_content"
android:inputType="textUri"
android:ems="10"
android:layout_width="wrap_content"
android:text="http://"/>
</LinearLayout>
ၿပီးရင္ Run ၾကည့္ေပါ့။
ပံုမွာေတြ႕ရတဲ့အတိုင္းပဲ http://ေလး auto ပါေနလိ္မ့္မယ္။
အခုကြၽန္ေတာ္ ေပါက္ေပါက္႐ွာ႐ွာေတြးမိလိုက္လို႔ ထပ္ျဖည့္ေပးလိုက္ပါတယ္။ အဲ့ဒါက android:text နဲ႔ android:hint နဲ႔တြဲသံုးၾကည့္တာေပါ့။ အေပၚက project ကိုပဲျပန္ဖြင့္ၿပီးေတာ့ android:hint="Web Address" လို႔ထည့္ၾကည့္လိုက္ပါ။
Code အျပည့္အစံုက
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Address"
android:textSize="20sp"/>
<EditText
android:layout_height="wrap_content"
android:inputType="textUri"
android:ems="10"
android:layout_width="wrap_content"
android:text="http://"
android:hint="Web Address"/>
</LinearLayout>
ၿပီးရင္Run ၾကည့္ပါ။
ေတြ႕ရတဲ့အတိုင္းပဲ http://ကေပၚေနမွာျဖစ္ၿပီး http://ကိုဖ်က္လိုက္ရင္ေတာ့ Web Address ဆိုတဲ့ hint ေလးေပၚလာမွာေပါ့ဗ်ာ။
အဆင္မေျပတာေလးေတြ comment မွာေမးသြားႏိုင္ပါတယ္။
သင္၏comment တစ္ေၾကာင္းသည္ ကြၽန္ုပ္အတြက္ ေနာက္ပိုစ့္မ်ားတင္ရန္ အားေဆးတစ္ခြက္ ျဖစ္ေစပါလိမ့္မည္။
Text Field
°°°°°°°°°°
ဒီအခန္းအတြက္ project အသစ္ေဆာက္လိုက္ပါ။
အရင္အတိုင္းပဲ LinearLayout မွာ android:orientation ကို vertical မထားပဲ horizontal ထားလိုက္ပါ။ အဲ့့ေၾကာင္းကို ေနာက္ပိုင္းမွ ေဖာ္ျပေပးပါမယ္။ ဒီအခန္းက Email တို႔ passwordတို႔ ရိုက္တဲ့ box ေလးအေၾကာင္း ပါ။
ပထမဆံုးtutorialမွာလို android:textကို Massage လို႔နာမည္ေပးလိုက္ပါ။ <TextView......../>ရဲ႕ ေနာက္ ကေန ႏွစ္ေၾကာင္းေလာက္ ဆင္းလိုက္ပါ။ ၿပီးရင္ေအာက္ က codeေလးေတြကို ထည့္ၾကည့္ပါ။
<EditText
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
TextSize ကေသးေနတယ္ဗ်။ ဟိုးအရင္က tutorial ထဲကလို TextSize ျပင္ၾကည့္ဗ်ာ။ Size က 20sp ေလာက္ထားရင္ အိုေကတယ္။ အရင္သင္ခန္းစာေတြ ေက်ညက္ခဲ့ရင္ ျပန္ၾကည့္စရာ မလိုဘူးေပါ့ဗ်ာ။ ၿပီးရင္ run ၾကည့္ပါ။
ဂလိုေလးေပါ့။
Password ထည့္တဲ့ Text Fieldလုပ္မယ္ဗ်ာ။ အေပၚက android:text က Massage ေနရာမွာ password လို႔ ေျပာင္းလိုက္ပါ။ Edit text ကိုပဲ password လုပ္ လို႔ရတယ္ေနာ္ ဒါေပမယ့္ password႐ိုက္လိုက္ရင္ စာလံုး ေတြကေပၚေနမွာေပါ့။ password လို ႐ိုက္ၿပီးခဏ ေနတာနဲ႔ အစက္ေလးေတြျဖစ္ေအာင္ လုပ္မယ္ေနာ္။ ေစာ ေစာကထည့္ထားတဲ့
<EditText ေနာက္ကေန တစ္ေၾကာင္းဆင္းလိုက္ပါ။ ၿပီးရင္ android:inputType="textPassword" လို႔ထည့္ပါ။
code အျပည့္အစံုက ဒီလိုေနာ္။
<EditText
android:inputType="textPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
ဒီလိုအစက္ေလးေတြျဖစ္သြားတာေပါ့။
ေနာက္ထပ္ စာလံုးpassword ၿပီးရင္ ဂဏန္းpassword လုပ္ၾကည့္မယ္ေနာ္။ ေစာေစာကထည့္ထားတဲ့ android:inputType ကိုဖ်က္ၿပီး android:inputType="numberPassword" လို႔အစားထိုး လိုက္ပါ။ အျပည့္အစံုက ဒီလိုေလးေနာ္။
<EditText android:inputType="numberPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
ၿပီးရင္ Run ၾကည့္လိုက္ပါ။
ဒီလိုေလးေနာ္။
ဒီတစ္ခါ Email ထည့္တဲ့ Box ေလးလုပ္မယ္ေနာ္။ အ ေပၚကအတိုင္းပဲ android:text မွာ Password ေနရာမွာ Email အစားထိုးလိုက္ပါ။ ၿပီးေတာ့ android:inputType ကိုဖ်က္ၿပီး android:inputType="textEmailAddress" လို႔အစားထိုး လိုက္ပါ။ အျပည့္အစံုက ဒီလိုေနာ္။
<EditText
android:inputType="textEmailAddress"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
ၿပီးရင္ Run ၿပီး စာလံုးေလးေတြ ႐ိုက္ထည့္ၾကည့္ပါ။
Keyboard မွာ @ နဲ႔ .com ခုပ္ေလးပါလာပါလိမ့္မယ္။
ဒီတစ္ခါ နာမည္ေရးဖို႔ box ေလးေရးမယ္ေနာ္။ အ ေပၚကအတိုင္းပဲ android:text မွာ Email ေနရာမွာ Name အစားထိုးလိုက္ပါ။ ၿပီးေတာ့ android:inputType ကိုဖ်က္ၿပီး android:inputType="textPersonName" လို႔အစားထိုး လိုက္ပါ။ အျပည့္အစံုက ဒီလိုေလးေနာ္။
<EditText
android:inputType="textPersonName"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
run ၾကည့္လိုက္ေနာ္။
ဒီလိုေလးေနာ္။
ေနာက္တစ္ခါ ဖုန္းနံပါတ္ ထည့္တဲ့ box ေလးလုပ္မယ္။ အေပၚမွာ အမ်ားႀကီးလုပ္ၿပီးၿပီဆိုေတာ့ မွတ္မိေနေလာက္ ပါၿပီ။ ေနာက္မွာလဲ က်န္ေသးေတာ့ အတိုေကာက္ပဲ ေျပာၾကမယ္။ text နဲ႔ input လို႔ပဲ ေျပာေတာ့မယ္။ ရလားမသိဘူး။ ရရမရရ လုပ္ၿပီ။ text မွာ Phone ထည့္ inputမွာ android:inputType="phone" လို႔ေျပာင္ းၿပီး Run မယ္ဗ်ာ။
ဂဏန္းေလးေတြပဲေပါ့။
ဒါကေတာ့ အခ်ိန္ထည့္တဲ့ box ေပါ့။ text မွာ Time| input မွာ android:inputType="time" လို႔ထည့္ၿပီး Run ၾကည့္လိုက္ေနာ္။
အခ်ိန္နဲ႔ဆိုင္တာေလးေတြပဲ ေပၚလာတာေပါ့ေနာ္။
ေနာက္ထပ္က်န္ပါေသးတယ္။ သိပ္ၿပီးအသံုးမလိုလို႔ ထားခဲ့တာပါ။ အသံုးမ်ားတာေလးေတြပဲ ထည့္ေပးလိုက္ ပါတယ္။
အကုန္လံုးကို app တစ္ခုထဲမွာထည့္နည္းက Layout အေၾကာင္းမ႐ွင္းရေသးလို႔မေျပာေတာ့ပါဘူး။ တကယ္ လို႔လုပ္ခ်င္ရင္ main.xml က အကုန္လံုးကိုဖ်က္ၿပီး ေအာက္က code ေလးထည့္လိုက္ပါ။
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text Password"
android:textSize="20sp"/>
<EditText
android:inputType="textPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Number Password"
android:textSize="20sp"/>
<EditText
android:inputType="numberPassword"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email"
android:textSize="20sp"/>
<EditText
android:inputType="textEmailAddress"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:textSize="20sp"/>
<EditText
android:inputType="textPersonName"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Phone"
android:textSize="20sp"/>
<EditText
android:inputType="phone"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textSize="20sp"/>
<EditText
android:inputType="time"
android:layout_height="wrap_content"
android:ems="10"
android:layout_width="wrap_content"/>
</LinearLayout>
</LinearLayout>
အဆင္မေျပတာေလးေတြ Comment မွာေမးႏိုင္ပါတယ္ ။
သင္၏comment တစ္ေၾကာင္းသည္ ကြၽန္ုပ္အတြက္ ေနာက္ပိုစ့္မ်ားတင္ရန္ အားေဆးတစ္ခြက္ ျဖစ္ေစပါလိမ့္မည္။