Lesson 8 (Gravity & Layout Gravity)

Sunday, January 17, 2016
Posted by Wai Hlyan

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)

Sunday, January 10, 2016
Posted by Wai Hlyan

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 (Text Hint)

Saturday, January 2, 2016
Posted by Wai Hlyan

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 တစ္​​ေၾကာင္​းသည္​ ကြၽန္​ုပ္​အတြက္​ ​ေနာက္ပိုစ္​့မ်ားတင္​ရန္​ အား​ေဆးတစ္​ခြက္​ ျဖစ္​​ေစပါလိမ္​့မည္​။

Lesson 5 (Text Field)

Tuesday, December 29, 2015
Posted by Wai Hlyan

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 တစ္​​ေၾကာင္​းသည္​ ကြၽန္​ုပ္​အတြက္​ ​ေနာက္ပိုစ္​့မ်ားတင္​ရန္​ အား​ေဆးတစ္​ခြက္​ ျဖစ္​​ေစပါလိမ္​့မည္​။

လာ​ေရာက္​ၾကည္​့႐ွႈသူမ်ား

Welcome to My Blog

Zawgyi-Unicode

Designed by အိမ္​​ေ႐ွ႕မင္​းသား-နည္​းပညာ. Powered by Blogger.

Random Posts

Contact Form

Name

Email *

Message *

Thankful

Popular Posts

- Copyright © Myanmar Android Tutorials For Beginners -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -