Myanmar Android Development မွ Android Dev Lessons မ်ားကုိ အျခား website မ်ား ၊ ျပင္ပစာအုပ္စာေပမ်ားတြင္ကူးယူေဖာ္ျပျခင္းမျပဳ ၾကပါရန္အသိေပးအပ္ပါသည္။



Wednesday, August 20, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၂၃)


ဒီေန႕သင္ခန္းစာမွာေတာ့ Android app ထဲမွာ Custom Font ထည့္သြင္းနည္းကုိေျပာျပေပးမွာျဖစ္ပါတယ္။ Custom Font ဆုိတာကေတာ့ ေဆာ့၀ဲထဲမွာ Built-in အေနနဲ႕ Font တစ္ခုကုိထည့္သြင္းေပးလုိက္မွာျဖစ္ျပီး ေဆာ့၀ဲထဲက စာသားေတြကုိ ေဆာ့၀ဲထဲမွာ Custom Font အေနနဲ႕ထည့္ေပးလုိက္တဲ့ Font ကုိအသုံးျပဳျပီး စာေပၚေပးမွာပါ။ ဒီလုိျပဳလုပ္တာကုိ Font Typeface လုိ႕လည္းေခၚပါတယ္။ ကြ်န္ေတာ္တုိ႕ျမန္မာ ေဆာ့၀ဲေတြထဲမွာ ျမန္မာစာ font ကုိ Built-in ထည့္သြင္းေပးလုိက္တာတို႕ ၊ ျမန္မာစာမရွိတဲ့ ဖုန္းေတြမွာ ျမန္မာေဆာ့ု၀ဲေတြကုိ ျမန္မာလုိျမင္ရတယ္တုိ႕ဆုိတာ ဖန္တီးထားတဲ့ေဆာ့၀ဲထဲမွာ အခုေျပာမယ့္ Custom Font ျဖင့္အစားထုိးအသုံးျပဳျခင္း /Typeface နည္းကုိအသုံးျပဳထားလုိ႕ပဲျဖစ္ပါတယ္။

ပထမဆုံးအေနနဲ႕ ကြ်န္ေတာ္တုိ႕ရဲ႕ ကြန္ပ်ဴတာထဲမွာ Font တစ္ခုေတာ့အသင့္ရွိထားရပါမယ္။ Android app ထဲမွာ Custom Font အေနနဲ႕ထည့္သြင္းလုိတဲ့ Font ကုိဆုိလုိတာပါ။ Font ကုိ ကြ်န္ေတာ္တုိ႕ Project folder ထဲက assets ဆုိတဲ့ Folder ထဲမွာထည့္သြင္းထားရမွာပါ။ ထည့္သြင္းပုံကေတာ့ ကြန္ပ်ဴတာထဲမွာ အသင့္ေဆာင္ထားတဲ့ Font ဖုိင္ (.ttf) ကုိ Copy ကူးျပီး Project ထဲက assets folder ေပၚမွာ right click ႏွိပ္ျပီး paste လုပ္လုိက္ရုံပါပဲ။ ထည့္သြင္းျပီးသြားရင္ေတာ့
ကုိယ္ထည့္ထားတဲ့ Font file ေလးကုိ Project ရဲ႕ assets folder ထဲမွာေတြ႕ရပါမယ္။

ျပီးရင္ေတာ့ Project ထဲက res folder ထဲက layout folder ထဲကုိ၀င္ပါ။ မိမိ Custom Font ထည့္လုိတဲ့ Layout xml file တစ္ခုကုိ ႏွိပ္လုိက္ပါ။


Form Widget ထဲကေန TextView တစ္ခုကုိ Drag & Drop လုပ္ျပီး ဖုန္း Screen layout ေပၚကုိတင္လုိက္ပါ။

Properties box မွာ TextView ကို ID ျပန္ျပင္လုိက္ပါ။ ကုိယ္ၾကိဳက္ႏွစ္သက္ရာ ID တစ္ခုခုေပးလုိက္ပါ။

ကြ်န္ေတာ္ကေတာ့ ID ကုိ t1 လုိ႕ နာမည္အလြယ္ပဲေပးလုိက္ပါတယ္။ 
ID ေပးျပီးရင္ ADT Eclipse ေဆာ့၀ဲရဲ႕ Menu bar က File ထဲကုိ၀င္ျပီး Save ကုိႏွိပ္ပါ။ (ID ေပးျပီးတုိင္း တစ္ခါ save ရပါမယ္)

TextView မွာေပၚခ်င္တဲ့စာသားကုိျပင္ခ်င္ရင္ေတာ့ TextView ရဲ႕ Properties Box ထဲမွာပဲ  Text ဆုိတာကုိလုိက္ရွာပါ။ အဲဒီေနရာမွာ ေပၚခ်င္တဲ့စာသားကုိျပင္လုိ႕ရပါတယ္။

ျပီးရင္ ယင္း Layout နဲ႕သက္ဆုိင္တဲ့ Java ဖုိင္ကုိသြားပါ။
setContentView(); စာသားရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာ ေအာက္ပါ code ကုိထည့္ပါ။

TextView tx = (TextView)findViewById(R.id.t1);
 
R.id. ရဲ႕ေနာက္က t1 ဆုိတာက ခုနက layout ထဲမွာတုန္းက TextView ကုိေပးခဲ့တဲ့ ID name ကုိဆုိလုိတာပါ။
 
code အျပည့္အစုံကုိနမူနာျပရရင္ေတာ့ ေအာက္ပါအတုိင္းပါ။
 
package com.example.customfonts;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TextView tx = (TextView)findViewById(R.id.t1);
     
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
} 


TextView ကုိ Project ထဲမွာ Custom ထည့္ထားတဲ့ Font နဲ႕ခ်ိတ္ပါမယ္။ 
      TextView tx = (TextView)findViewById(R.id.t1) စာေၾကာင္းရဲ႕ေအာက္မွာ Custom Typeface 
code ကုိထည့္ရပါမယ္။
 
Typeface custom_font = Typeface.createFromAsset(getAssets(), "zawgyi.ttf"); 


Typeface စာေၾကာင္းကုိထည့္ျပီးျပီဆုိရင္ေတာ့ ယင္း Typeface code ရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာ 
ခုနက TextView ကုိ Typeface နဲ႕ခ်ိတ္ဆက္ရပါမယ္။ ေအာက္ပါ code ကုိထပ္ထည့္လုိက္ပါ။

tx.setTypeface(custom_font);
 
code အျပည့္အစုံကုိနမူနာျပရရင္ေတာ့ ေအာက္ပါအတုိင္းပါ။
 
package com.example.customfonts;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TextView tx = (TextView)findViewById(R.id.hello);
      Typeface custom_font = Typeface.createFromAsset(getAssets(),
      "zawgyi.ttf");
      tx.setTypeface(custom_font);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
}  
 
ျပီးရင္ေတာ့ ဖုန္း (သုိ႕) Emulator နဲ႕ Project ကုိ စမ္းသပ္ run ၾကည့္ပါ။ TextView ေနရာမွာ ေပၚမယ့္ Font 
ဒီဇဳိင္းဟာ Custom ထည့္ထားတဲ့ Font နဲ႕ေပၚမွာျဖစ္ပါတယ္။ ဘာ Font ကုိပဲျဖစ္ျဖစ္ ဒီနည္းနဲ႕လုပ္လုိ႕ရပါတယ္။
  
 
 
 

 
 


Monday, June 23, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း(၂၂)


အပုိင္း(၂၁) မွာေတာ့ Android Screen တစ္ခ်ပ္ကေန ေနာက္တစ္ခ်ပ္ဆီကုိသြားတာကုိ ေလ့လာခဲ့ၾကရပါျပီ။ ကြ်န္ေတာ္တုိ႕အခုလုပ္လာတဲ့သင္ခန္းစာေတြမွာ ခလုတ္တစ္ခုပဲပါ ပါေသးတယ္။ ဒီေန႕သင္ခန္းစာအပုိင္း (၂၂) မွာေတာ့ ခလုတ္တစ္ခုထက္ပုိျပီး Screen ေပၚမွာထည့္ၾကည့္ရေအာင္ ။ ဥပမာ - ေဆာ့၀ဲမွာ ခလုတ္ႏွစ္ခုပါတယ္ဆုိပါစုိ႕ ။ ပထမခလုတ္ကုိ ႏွိပ္ရင္ ဘာျဖစ္ရမယ္ ။ ဒုတိယခလုတ္ကုိႏွိပ္ရင္ဘာျဖစ္ရမယ္။ စသျဖင့္ေပါ့။ အခုသင္ခန္းစာမွာေတာ့ ခလုတ္ႏွစ္ခုကုိနမူနာထည့္ျပပါမယ္။



ခလုတ္ (Button) သင္ခန္းစာကုိလုပ္မယ္ဆုိရင္ step (3) ခုကုိမွတ္သားထားရင္ရပါျပီ။

- Screen Layout ေပၚကုိ Form Widget ထဲက Button တစ္ခုဆြဲတင္ ၊ Screen Layout ေပၚကုိဆြဲတင္လုိက္ျပီျဖစ္တဲ့ Button ကုိ ID သတ္မွတ္ေပး ၊ ျပီးရင္ File > Save

- Screen Layout ေပၚကုိတင္ခဲ့တဲ့ Button ကုိ Command code ေတြထည့္ေရးရန္ ယင္း Screen Layout နဲ႕သက္ဆုိင္တဲ့ Java ဖုိင္ထဲကေန Button Code သုံးျပီး Screen Layout ဘက္ျခမ္းမွာတင္ထားခဲ့တဲ့ Button ကုိလွမ္းခ်ိတ္ရပါမယ္။

- ယင္း Button ကုိႏွိပ္လုိက္ရင္ ျဖစ္ခ်င္တဲ့ action တစ္ခုခု (ဥပမာ ခလုတ္ကုိႏွိပ္လုိက္ရင္ Alert Box ေပၚခ်င္တာမ်ိဳး) ကုိ Button Code ရဲ႕ onClick() {} ထဲမွာထည့္ေရးလုိက္ရုံပါပဲ။

ဒီသံုးခ်က္ကုိသိျပီ ၊ ဒီအတုိင္းလုိက္လုပ္မယ္ဆုိရင္ Button သင္ခန္းစာအတြက္ အဆင္ေျပပါျပီ။

အရင္ဆုံး Screen Layout ေပၚကုိ Form widget ထဲက Button တစ္ခုကုိ Drag & Drop ဆြဲထည့္ပါ။



ျပီးရင္ ယင္း Button ေပၚကုိ Click တစ္ခ်က္ႏွိပ္ပါ။ ေဘးမွာ Button နဲ႕သက္ဆုိင္တဲ့ properties ေပၚလာပါမယ္။



ယင္း Properties box ထဲက ID ရဲ႕ေဘးကအကြက္ကုိ click ၂ ခ်က္ႏွိပ္ပါ။ id/ ကုိခ်န္ျပီး ေနာက္က button1 ဆုိတာကုိဖ်က္ပစ္ပါ။

ျပီးရင္ ၾကိဳက္ႏွစ္သက္ရာ ID name တစ္ခုခုေပးလုိက္ပါ။ ဥပမာ - b1


Button ကုိ ID name ေပးျပီးျပီဆုိရင္ေတာ့ ADT ရဲ႕ menu bar က File ထဲကုိ၀င္ပါ ။ ျပီးရင္ save ကုိႏွိပ္၍ Save လုိက္ပါ။ (ID တစ္ခါသတ္မွတ္ျပီးတုိင္း တစ္ခါ save ရပါမယ္)

ျပီးရင္ Screen layout နဲ႕သက္ဆုိင္တဲ့ java file ထဲကုိ၀င္ျပီး ယခု Screen Layout ေပၚမွာတင္ထားခဲ့တဲ့ Button ကုိ Java file ကေန Button code အသုံးျပဳျပီးလွမ္းခ်ိတ္ရပါမယ္။ သူနဲ႕သက္ဆုိင္ရာ java file ကုိရွာဖုိ႕ ကုိယ့္ရဲ႕ Project ထဲက src folder ထဲကုိ၀င္ပါ။ ေလာေလာဆယ္ေတာ့  MainActivity.java တစ္ဖုိင္ပဲရွိပါဦးမယ္။ အဲဒီ MainActivity.java ဖုိင္ထဲကုိ၀င္ပါ။ setContentView....() ဆုိတဲ့စာေၾကာင္းကုိလုိက္ရွာပါ။



အဲဒီမွာ setContentView(R.Layout.MainActivity) ဆုိတာမ်ိဳးေတြ႕ရင္ ဒီ MainActivity.java ဖုိင္ဟာ ကြ်န္ေတာ္တုိ႕ခုနက Button တင္ထားခဲ့တဲ့ Screen Layout ျဖစ္တဲ့ activitymain.xml နဲ႕ခ်ိတ္ဆက္ထားတယ္လုိ႕ ယူဆရပါမယ္။ အဲလုိခ်ိတ္ဆက္ထားတဲ့ဖုိင္မွာသာ ယင္း screen နဲ႕သက္ဆုိင္တဲ့ code ကုိ၀င္ေရးလုိ႕ရမွာပါ။ အခု ကြ်န္ေတာ္တုိ႕က MainActivity.java file ထဲမွာ
ဟုိဘက္ Screen Layout က Button ကုိလွမ္းခ်ိတ္ဖုိ႕ Button Code ထည့္ပါမယ္။ Button Code ကေတာ့ ေအာက္ပါအတုိင္းပါ။


 final Button bb1=(Button)findViewById(R.id.button1);
       
       
         bb1.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click

              
   
             }
         });

(ယခု code သည္နမူနာျပထားျခင္းသာျဖစ္ေသာေၾကာင့္ ကုိယ့္ project ထဲက id name ေတြနဲ႕ကုိက္ေအာင္ျပန္ျပင္ေပးပါ။ ဥပမာ - အေပၚက code ထဲမွာ R.id.button1 လုိ႕ေပးထားတာကုိျမင္ရမွာပါ။ bb ေနရာမွာ ကြ်န္ေတာ္တုိ႕ screen layout ဘက္ျခမ္းမွာ Button ကုိ b1 လုိ႕နာမည္ေပးခဲ့တယ္ဆုိရင္ b1 လုိ႕ျပင္ေပးလုိက္ပါ ။ ဥပမာ - R.id.b1)

အေပၚမွာျပထားတဲ့ Button code ကုိ setContentView() စာေၾကာင္းရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာထည့္ရပါမယ္။



ထည့္ျပီးသြားျပီဆုိရင္ ထုံးစံအတုိင္း Error မီးေလးေတြလင္းပါလိမ့္မယ္။ အရင္သင္ခန္းစာေတြတုန္းကလုိပဲ error မီးေလးေတြႏွိပ္ျပီး Import.... ကုိ double click ေတြသာႏွိပ္ေပးလုိက္ပါ။ ယခု Button code မွာဆုိရင္ error မီးသုံးခုလင္းပါလိမ့္မယ္။
 ပထမတစ္ခုနဲ႕ တတိယတစ္ခုကုိပဲ ႏွိပ္ျပီး error ရွင္းပါ။



error မီးေတြေပ်ာက္သြားျပီဆုိရင္
Button ကုိႏွိပ္လုိက္တဲ့အခါျဖစ္ခ်င္တဲ့ Action code ကုိထည့္ပါမယ္။ ဥပမာအေနနဲ႕ ခလုတ္ကုိႏွိပ္လုိက္တဲ့အခါ "I am MgMg" ဆုိတဲ့စာသားေလး Screen ရဲ႕ေအာက္ေျခနားေလာက္မွာ Message အေနနဲ႕ေပၚလာေအာင္ေရးၾကည့္ရေအာင္ ။ ယခုထည့္ထားခဲ့တဲ့ Button Code ထဲမွာ onClick() {} ဆုိတဲ့ function ပါပါတယ္ ။ ယင္း onClick function ထဲကုိ message ေပၚေစတဲ့ code ကုိသြားထည့္ရမွာပါ။  Message ေပၚေစတဲ့ code ကေတာ့ေအာက္ပါအတုိင္းပါ။

Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();


ေပၚေစခ်င္တဲ့စာသားကုိေတာ့ "" double quote ႏွစ္ခုၾကားမွာသြားျပင္ပါ။ ဥပမာ-

Toast.makeText(getApplicationContext(), "I am MgMg", Toast.LENGTH_SHORT).show();

ယင္း code ကုိ Button Code ရဲ႕ onClick () Function ထဲမွာသြားထည့္ေပးရမွာပါ။ ေအာက္ပါအတုိင္းပါ။



Error  မီးကိုေတာ့ ထုံးစံအတုိင္း Error မီးလုံးေလးေပၚမွာ Click ႏွိပ္ Import.... ကုိ double click ႏွိပ္ျပီး ေဖ်ာက္လုိက္ပါ။
ျပီးရင္ေတာ့ ဖုန္း (သုိ႕) Emulator နဲ႕ run ၾကည့္လုိ႕ရပါျပီ။



အခု ကြ်န္ေတာ္တုိ႕လုပ္ခဲ့တာ ခလုတ္ တစ္ခုစာပဲရွိပါေသးတယ္။ ေနာက္ခလုတ္တစ္ခုေလာက္ နမူနာထပ္ထည့္ျပပါမယ္။ မွတ္သားထားရမွာပါ ခလုတ္ ဘယ္ႏွခုပဲျဖစ္ျဖစ္ အေပၚမွာတုန္းကေျပာခဲ့တဲ့ Step (၃) ခ်က္ကုိပဲ လုပ္ရမွာပါ။  Button သင္ခန္းစာအတြက္ မွတ္သားရန္သုံးခ်က္ကုိ တစ္ခါျပန္ေျပာပါမယ္။
- Screen Layout ေပၚကုိ Form Widget ထဲက Button တစ္ခုဆြဲတင္ ၊ Screen Layout ေပၚကုိဆြဲတင္လုိက္ျပီျဖစ္တဲ့ Button ကုိ ID သတ္မွတ္ေပး ၊ ျပီးရင္ File > Save

- Screen Layout ေပၚကုိတင္ခဲ့တဲ့ Button ကုိ Command code ေတြထည့္ေရးရန္ ယင္း Screen Layout နဲ႕သက္ဆုိင္တဲ့ Java ဖုိင္ထဲကေန Button Code သုံးျပီး Screen Layout ဘက္ျခမ္းမွာတင္ထားခဲ့တဲ့ Button ကုိလွမ္းခ်ိတ္ရပါမယ္။

- ယင္း Button ကုိႏွိပ္လုိက္ရင္ ျဖစ္ခ်င္တဲ့ action တစ္ခုခု (ဥပမာ ခလုတ္ကုိႏွိပ္လုိက္ရင္ Alert Box ေပၚခ်င္တာမ်ိဳး) ကုိ Button Code ရဲ႕ onClick() {} ထဲမွာထည့္ေရးလုိက္ရုံပါပဲ။

ဒီသံုးခ်က္ကုိသိျပီ ၊ ဒီအတုိင္းလုိက္လုပ္မယ္ဆုိရင္ Button သင္ခန္းစာအတြက္ အဆင္ေျပပါျပီ။ ကဲ.. အခုေနာက္ခလုတ္တစ္ခုအတြက္လုပ္ရေအာင္ ။

ဒုတိယခလုတ္ကလည္း ပထမခလုတ္ကုိလုပ္ခဲ့တဲ့ step ေတြအတုိင္းပဲလုပ္ရမွာပါ။
အရင္ဆုံး Screen Layout ေပၚကုိ Form widget ထဲက Button တစ္ခုကုိ Drag & Drop ဆြဲထည့္ပါ။ (အေပၚမွာတုန္းက လုပ္ခဲ့တဲ့ Button ရဲ႕ေအာက္ဘက္ေနရာနားေလာက္မွာ ထည့္ၾကည့္ပါ ။ ဘယ္ေနရာထည့္ထည့္ရပါတယ္)





ျပီးရင္ ခုနကလုိပဲ ယင္း Button ေပၚကုိ Click တစ္ခ်က္ႏွိပ္ပါ။ ေဘးမွာ Button နဲ႕သက္ဆုိင္တဲ့ properties ေပၚလာပါမယ္။

ယင္း Properties box ထဲက ID ရဲ႕ေဘးကအကြက္ကုိ click ၂ ခ်က္ႏွိပ္ပါ။ id/ ကုိခ်န္ျပီး ေနာက္က button1 ဆုိတာကုိဖ်က္ပစ္ပါ။


ျပီးရင္ ၾကိဳက္ႏွစ္သက္ရာ ID name တစ္ခုခုေပးလုိက္ပါ။ ဥပမာ - b2
(အေပၚ button မွာတုန္းက သတ္မွတ္ခဲ့တဲ့ ID နဲ႕မတူေအာင္ေပးရပါမယ္။ ID ခ်င္းတူလုိ႕မရပါ)

Button ကုိ ID name ေပးျပီးျပီဆုိရင္ေတာ့ ADT ရဲ႕ menu bar က File ထဲကုိ၀င္ပါ ။ ျပီးရင္ save ပါ။ (ID တစ္ခါသတ္မွတ္ျပီးတုိင္း တစ္ခါ save ရပါမယ္)


ျပီးရင္ Screen layout နဲ႕သက္ဆုိင္တဲ့ java file ထဲကုိ၀င္ျပီး ယခု Screen Layout ေပၚမွာတင္ထားခဲ့တဲ့ Button ကုိ Java file ကေန Button code အသုံးျပဳျပီးလွမ္းခ်ိတ္ရပါမယ္။ သူနဲ႕သက္ဆုိင္ရာ java file ကုိရွာဖုိ႕ ကုိယ့္ရဲ႕ Project ထဲက src folder ထဲကုိ၀င္ပါ။ ေလာေလာဆယ္ေတာ့  MainActivity.java တစ္ဖုိင္ပဲရွိပါဦးမယ္။ အဲဒီ MainActivity.java ဖုိင္ထဲကုိ၀င္ပါ။ setContentView....() ဆုိတဲ့စာေၾကာင္းကုိလုိက္ရွာပါ။ အဲဒီမွာ setContentView(R.Layout.MainActivity) ဆုိတာမ်ိဳးေတြ႕ရင္ ဒီ MainActivity.java ဖုိင္ဟာ ကြ်န္ေတာ္တုိ႕ခုနက Button တင္ထားခဲ့တဲ့ Screen Layout ျဖစ္တဲ့ activitymain.xml နဲ႕ခ်ိတ္ဆက္ထားတယ္လုိ႕ ယူဆရပါမယ္။ အဲလုိခ်ိတ္ဆက္ထားတဲ့ဖုိင္မွာသာ ယင္း screen နဲ႕သက္ဆုိင္တဲ့ code ကုိ၀င္ေရးလုိ႕ရမွာပါ။ အခု ကြ်န္ေတာ္တုိ႕က MainActivity.java file ထဲမွာ
ဟုိဘက္ Screen Layout က Button ကုိလွမ္းခ်ိတ္ဖုိ႕ Button Code ထည့္ပါမယ္။ Button Code ကေတာ့ ေအာက္ပါအတုိင္းပါ။

final Button bb2=(Button)findViewById(R.id.button1);
       
       
         bb2.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click

              
   
             }
         });




(ယခု code သည္နမူနာျပထားျခင္းသာျဖစ္ေသာေၾကာင့္ ကုိယ့္ project ထဲက id name ေတြနဲ႕ကုိက္ေအာင္ျပန္ျပင္ေပးပါ။ ဥပမာ - အေပၚက code ထဲမွာ R.id.button1 လုိ႕ေပးထားတာကုိျမင္ရမွာပါ။ button1 ေနရာမွာ ကြ်န္ေတာ္တုိ႕ screen layout ဘက္ျခမ္းမွာအသစ္ထပ္ေဆာက္ခဲ့တဲ့ Button ရဲ႕ ID ကုိထည့္ေပးရမွာပါ။ ဥပမာ - R.id.b2)

အေပၚမွာျပထားတဲ့ Button code မွာဆုိရင္ final button bb2 လုိ႕ေပးခဲ့တာကုိေတြ႕ရပါမယ္။ ဘာလုိ႕ bb2 လုိ႕ေပးခဲ့ရသလဲဆုိရင္ ကြ်န္ေတာ္တုိ႕ အေပၚမွာ ပထမလုပ္ခဲ့တဲ့ Button တုန္းက final button bb1 လုိ႕သတ္မွတ္ခဲ့ျပီးသားပါ။ ဒါေၾကာင့္ ယခု Button အတြက္က်ေတာ့ name မတူေအာင္ေျပာင္းေပးလုိက္တာပါ။ အေပၚမွာတုန္းက ထည့္ခဲ့တဲ့ Button Code ရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာထည့္ရပါမယ္။




ထည့္ျပီးသြားျပီဆုိရင္Button ကုိႏွိပ္လုိက္တဲ့အခါျဖစ္ခ်င္တဲ့ Action code ကုိထည့္ပါမယ္။ ဥပမာအေနနဲ႕ ခလုတ္ကုိႏွိပ္လုိက္တဲ့အခါ "I am Kyaw Kyaw" ဆုိတဲ့စာသားေလး Screen ရဲ႕ေအာက္ေျခနားေလာက္မွာ Message အေနနဲ႕ေပၚလာေအာင္ေရးၾကည့္ရေအာင္ ။ ယခုထည့္ထားခဲ့တဲ့ Button Code ထဲမွာ onClick() {} ဆုိတဲ့ function ပါပါတယ္ ။ ယင္း onClick function ထဲကုိ message ေပၚေစတဲ့ code ကုိသြားထည့္ရမွာပါ။  Message ေပၚေစတဲ့ code ကေတာ့ေအာက္ပါအတုိင္းပါ။

Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();


ေပၚေစခ်င္တဲ့စာသားကုိေတာ့ "" double quote ႏွစ္ခုၾကားမွာသြားျပင္ပါ။ ဥပမာ-

Toast.makeText(getApplicationContext(), "I am KyawKyaw", Toast.LENGTH_SHORT).show();

ယင္း code ကုိ Button Code ရဲ႕ onClick () Function ထဲမွာသြားထည့္ေပးရမွာပါ။ ေအာက္ပါအတုိင္းပါ။



ျပီးရင္ေတာ့ ဖုန္း (သုိ႕) Emulator နဲ႕ run ၾကည့္လုိ႕ရပါျပီ။

ပထမခလုတ္ကုိႏွိပ္ရင္ေတာ့ "I am MgMg" လုိ႕ေပၚပါလိမ့္မယ္။


ဒုတိယခလုတ္ကုိႏွိပ္ရင္ေတာ့ "I am KyawKyaw" လုိ႕ေပၚပါလိမ့္မယ္။



ေနာက္ထပ္ ခလုတ္သုံးခု ၊ ေလးခုစသည္ျဖင့္ ကုိယ့္ဘာသာ အိမ္စာလုပ္ၾကည့္ပါဦး။

အိမ္စာအေနနဲ႕ ခလုတ္ေလးခုပါတဲ့ app တစ္ခုေရးျပီး myanmarmobileapp@gmail.com သုိ႕အိမ္စာေပးပုိ႕ရပါမယ္။ ပထမခလုတ္ကုိႏွိပ္ရင္ 1 လုိ႕ေပၚေစခ်င္ပါတယ္။ ဒုတိယခလုတ္ကုိႏွိပ္ရင္ 2, တတိယခလုတ္ကုိႏွိပ္ရင္ 3 ၊ စတုထၳခလုတ္ကုိႏွိပ္ရင္ 4 စသည္ျဖင့္ေပၚေပးပါ။


Tuesday, June 10, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၂၁)


Android Application မ်ားေရးသားနည္း အပုိင္း (၂၀) သင္ခန္းစာကုိ ဖတ္ျပီးၾကျပီလုိ႕ထင္ပါတယ္။ အပုိင္း (၂၀) သင္ခန္းစာကိုဖတ္ရႈထားမွသာ ယခု အပုိင္း(၂၁)မွာလုပ္ေဆာင္ရမယ့္အခ်က္ေတြကုိ
သေဘာေပါက္မွာျဖစ္ပါတယ္။ ဒီတစ္ေခါက္သင္ခန္းစာကုိလည္း အပုိင္း (၁၁) သင္ခန္းစာကုိပဲျပန္လည္အေျခခံမွာျဖစ္ပါတယ္။ အပုိင္း (၁၁) သင္ခန္းစာမွာတုန္းက Button ထည့္တဲ့အထိျပီးခဲ့ပါျပီ။ ယခုသင္ခန္းစာမွာေတာ့ ယင္း Button ကုိႏွိပ္လုိက္ရင္ ေနာက္ထပ္ Screen တစ္ခ်ပ္ကုိေရာက္သြားေအာင္ လုပ္ၾကရေအာင္။ Screen တစ္ခ်ပ္ကေန ေနာက္တစ္ခ်ပ္ကုိကူးတဲ့သင္ခန္းစာျဖစ္ပါတယ္။ ဒီသင္ခန္းစာက လုပ္ရမယ့္ step ေတြမ်ားတဲ့အတြက္ ေအာက္မွာေျပာထားတဲ့အဆင့္ေတြအတုိင္း ေသခ်ာဖတ္ရႈလုပ္ေဆာင္မွသာ ရပါလိမ့္မယ္။

အရင္ဆုံး Screen Layout file တစ္ခုအရင္ေဆာက္ၾကရေအာင္။ Project ရဲ႕ res folder ထဲက layout folder ေပၚမွာ right click ႏွိပ္ပါ။ ေအာက္ပုံထဲကအတုိင္းပါ။




https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1gdbP5uMY_YrrGvwptwUJ1QqtlJjhZ1e3t_9sw6LnbJr4RzxIeDoxUe7eOYjwDnoKLdHjPWvRgwJVokdmHHOulCtBhyvG5brBSE8uJtTfcp6xAJ-JwVaxaRrc_-GCb7CzaBh-48tniOg/s1600/eight.jpg

 New XML file Dialog box ေပၚလာရင္ File ဆုိတဲ့ေနရာမွာ ၾကိဳက္ႏွစ္သက္ရာနာမည္တစ္ခုေပးပါ။
Root Element: ေနရာမွာ Relative Layout ကုိေရြးပါ။ ျပီးရင္ Finish ကုိႏွိပ္ပါ။ ေအာက္ပုံအတုိင္းပါ။




ေအာက္ပုံထဲကအတုိင္း မိမိရဲ႕ Android Project ထဲမွာ Screen တစ္ခ်ပ္အသစ္တစ္ခ်ပ္ေပၚလာပါမယ္။

အပုိင္း (၂၀) သင္ခန္းစာကုိဖတ္ခဲ့ရင္ အခုေျပာမယ့္သေဘာတရားကုိ သိပါလိမ့္မယ္။ ကြ်န္ေတာ္တုိ႕ အခု Screen ဖုိင္အသစ္တစ္ခ်ပ္ေဆာက္ျပီးပါျပီ။ ဒါေပမယ့္ Screen ဖုိင္တစ္ခ်ပ္မွာ Xml ဖုိင္တစ္ခု ၊ သူနဲ႕တြဲျပီးအလုပ္လုပ္မယ့္ ၊ Screen file ကုိ command ေပးမယ့္ coding file တစ္ခုရွိရပါမယ္။ ဒီအတြက္ အခုအသစ္ဖန္တီးခဲ့တဲ့ Screen2 xml ဖုိင္နဲ႕တြဲအလုပ္လုပ္ဖုိ႕ Java file တစ္ခုထပ္ဖန္တီးရပါမယ္။
Project ရဲ႕ src folder ကုိဖြင့္ပါ။ ၄င္းရဲ႕အတြင္းထဲက com.xxx.xxx (ဥပမာ com.example.test1) စတဲ့ package folder ေပၚမွာ right click ႏွိပ္ျပီး New> Class ကုိေရြးပါ။

New Java Class Dialog box ေပၚလာရင္ Name ေနရာမွာ နာမည္တစ္ခုေပးလုိက္ပါ။ ကြ်န္ေတာ္ကေတာ့ နမူနာအေနနဲ႕ Forscreen2 လုိ႕နာမည္ေပးလုိက္ပါတယ္။ ျပီးရင္ Finish ကုိႏွိပ္ပါ။ ေအာက္ပုံအတုိင္းပါ။







ေအာက္ပုံထဲကအတုိင္း Java ဖုိင္အလြတ္ေလးတစ္ခုေပၚလာပါမယ္။ ေအာက္ကပဳံထဲမွာဆုိရင္ class name ေနရာမွာ ကြ်န္ေတာ္ေပးခဲ့တဲ့နာမည္အတုိင္း forscreen2 ဆုိတာနဲ႕ေတြ႕ရမွာပါ။



အခုဆက္လုပ္ရမွာကေတာ့  အခုဖန္တီးလုိက္တဲ့ java file ထဲက
 code တစ္ခ်ိဳ႕ကုိဖ်က္ျပီး code အသစ္တစ္ခ်ိဳ႕နဲ႕ျပန္အစားထုိးရပါတယ္။
ေအာက္ပုံထဲကအတုိင္း

public class Forscreen2 {

}

ဆုိတာကုိဖ်က္ပစ္ပါမယ္။ ေအာက္ပုံအတုိင္းပါ။








ဖ်က္ျပီးသြားတဲ့အခါမွာေတာ့ ေအာက္ပုံထဲကအတုိင္း package com.xxx.xxx စတဲ့ code တစ္ေၾကာင္းသာက်န္ပါမယ္။ ေအာက္ပုံအတုိင္းပါ။

















ျပီးရင္ ေအာက္မွာေပးထားတဲ့ code နမူနာကုိထည့္ပါမယ္။

import android.app.Activity;
import android.os.Bundle;

public class jabout extends Activity

{

    public void onCreate(Bundle savedInstanceState)

     {
       
         super.onCreate(savedInstanceState);
        setContentView(R.layout.about);
   
       
    }

}

ထည့္ျပီးတဲ့အခါ ေအာက္ပုံထဲကအတုိင္းျဖစ္ပါလိမ့္မယ္။ ဒါေပမယ့္ code sample ကုိ ေကာ္ပီကူးထည့္ထားတာျဖစ္တဲ့အတြက္ class name နဲ႕ xml file name ေတာ့ျပန္ခ်ိန္းေပးရပါမယ္။ ျပန္ခ်ိန္းေပးရမယ့္ ေနရာ ၂ ေနရာကုိ အနီေရာင္ ၀ုိက္ျပထားပါတယ္။ ေအာက္ပုံအတုိင္းပါ။


class ေနာက္က jabout ဆုိတဲ့ေနရာမွာ ကြ်န္ေတာ္တုိ႕အသစ္ဖန္တီးလုိက္တဲ့ java file ရဲ႕ name ျဖစ္တဲ့ forscreen2 ကုိထည့္ရပါမယ္။ (ကုိယ္ဖန္တီးခဲ့တဲ့နာမည္အတုိင္းထည့္ရုံပဲျဖစ္ပါတယ္။) ။ R.layout. ရဲ႕ေနာက္မွာေတာ့ ကြ်န္ေတာ္တုိ႕ အေစာပုိင္းမွာတုန္းကဖန္တီးခဲ့တဲ့ screen layout file ျဖစ္တဲ့ screen2.xml ရဲ႕ file name "screen2" ကုိထည့္ရပါမယ္။ ထည့္ျပီးသြားတဲ့အခါမွာေတာ့ ေအာက္ပုံထဲကအတုိင္းျဖစ္ပါမယ္။ ျပင္ထားတဲ့ေနရာေတြကုိ ျမင္သာေစရန္
အျပာေရာင္မ်ဥ္းေလးေတြတားျပထားပါတယ္။


အခုဆုိရင္ေတာ့ ကြ်န္ေတာ္တုိ႕ ဟာ Screen file အသစ္လည္းေဆာက္ျပီးျပီ ၊ ယင္း screen xml file နဲ႕တြဲအလုပ္လုပ္မယ့္ ၊ screen file ကုိ coding လွမ္းေရးရမယ့္ coding ဖုိင္လည္းေဆာက္ျပီးျပီျဖစ္ပါတယ္။ ယင္း file ႏွစ္ခုကုိလည္းခ်ိတ္ဆက္ျပီးပါျပီ။

အခုဆက္လုပ္ရမွာကေတာ့ Android Project ရဲ႕အဓိက ဖုိင္ျဖစ္တဲ့ AndroidManifest.xml ဖုိင္မွာ Screen အသစ္တစ္ခ်ပ္ေဆာက္ထားေၾကာင္းကုိ ၀င္ေရာက္ေၾကညာေပးရမွာျဖစ္ပါတယ္။ AndroidManifest ဖုိင္ဆုိတာကေတာ့ ကုိယ့္ Android Project ရဲ႕ အႏွစ္ခ်ဳပ္ main file တစ္ခုလုိ႕ေျပာလုိ႕ရပါတယ္။ ဥပမာ - ရပ္ကြက္တစ္ခုရဲ႕ ရပ္ကြက္အုပ္ခ်ဳပ္ေရးမႈဳးနဲ႕ ဆင္တူပါတယ္။ ရပ္ကြက္ထဲမွာ ကိစၥတစ္ခုခုလုပ္ေတာ့မယ္ဆုိရင္ သူ႕ကုိသြားအေၾကာင္းၾကားရသလုိပါပဲ။ အခုလည္း Android Project မွာ Screen တစ္ခ်ပ္ေဆာက္ျပီး ဒီအတုိင္းသြားသုံးလုိ႕မရပါဘူး ။ Screen အသစ္တစ္ခ်ပ္ေဆာက္ထားေၾကာင္းကုိ သြားေရာက္ေၾကညာေပးရပါမယ္။ အရင္ဆုံး ကုိယ့္ရဲ႕ Android Project ထဲက AndroidManifest.xml file ကုိအရင္၀င္လုိက္ပါ။ ၀င္ျပီးျပီဆုိရင္ ေအာက္ပုံထဲကအတုိင္းေတြ႕ရပါမယ္။



AndroidManifest.xml file ထဲကုိေရာက္သြားျပီဆုိရင္ ယင္း file ေအာက္မွာ Manifest , Application , Permissions , Instrumentation , AndroidManifest.xml စတဲ့ ခလုတ္ငါးခုကုိေတြ႕ရပါမယ္။ ယင္းငါးခုထဲက AndroidManifest.xml ဆုိတဲ့ tab ကုိႏွိ္ပ္ပါ။ ေအာက္ပုံအတုိင္းေတြ႕ရပါမယ္ ။


အေပၚမွာျပထားတဲ့ ပုံထဲမွာ ေအာက္က code ေတြကုိေတြ႕ရပါမယ္။

 <activity
            android:name="com.example.test1.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

အခု ကြ်န္ေတာ္တုိ႕ဆက္လုပ္ရမွာက အေပၚမွာျပထားတဲ့ code ရဲ႕ေနာက္ဆုံးအေၾကာင္း </activity> ရဲ႕ေနာက္မွာ ေအာက္မွာေပးထားတဲ့ activity code အသစ္ကုိထပ္ထည့္ရမွာျဖစ္ပါတယ္။

        <activity
            android:label="@string/app_name"
            android:name=".jabout" >
        </activity>

code ကုိထည့္ရမွာလည္း ကြ်န္ေတာ္ေပးထားတဲ့ code ဟာ နမူနာသာျဖစ္တဲ့အတြက္ ကုိယ့္ project မွာပါတဲ့ဖုိင္နာမည္ေတြနဲ႕ကုိက္ေအာင္ အနည္းငယ္ေလး ျပန္ျပင္ဖုိ႕ေတာ့လုိပါမယ္။   အေပၚမွာျပထားတဲ့ code ထဲက       android:name=".jabout" > ဆုိတဲ့ေနရာက .jabout မွာ အေပၚမွာတုန္းက ေဆာက္ခဲ့တဲ့ Java file အသစ္ရဲ႕နာမည္ကုိထည့္ရမွာပါ။ ကြ်န္ေတာ္ အေပၚမွာေဆာက္ခဲ့တုန္းက Java file အသစ္ရဲ႕နာမည္ကုိ Forscreen2 လုိ႕အမည္ေပးထားတာျဖစ္တဲ့အတြက္ အခု android:name=".jabout" ေနရာမွာလည္း
android:name=".Forscreen2" လုိ႕ နာမည္ေလးေျပာင္းေပးရုံပါပဲ။ AndroidManifest.xml ဖုိင္ထဲမွာ Screen Activity code အသစ္ထပ္ထည့္ထားပုံကုိေအာက္မွာနမူနာျပထားပါတယ္။


အခုဆုိရင္ ကြ်န္ေတာ္တုိ႕ screen xml file လည္းေဆာက္ျပီးျပီ ၊ သူနဲ႕တြဲဖက္အလုပ္လုပ္မယ့္ java ဖုိင္လည္းဖန္တီးျပီးျပီ ၊ Screen အသစ္တစ္ခ်ပ္ေဆာက္ထားေၾကာင္းကုိလည္း Android Project ရဲ႕ အဓိကဖုိင္ျဖစ္တဲ့ AndroidManifest.xml ဖုိင္မွာ၀င္ေရာက္ေၾကညာခဲ့ျပီးျဖစ္ပါတယ္။ ေနာက္ဆုံးလုပ္ရမယ့္
step တစ္ခုပဲက်န္ပါေတာ့တယ္။ အဲဒါကေတာ့ ေဆာ့၀ဲရဲ႕ ပထမဆုံး Screen ကခလုတ္ကုိႏွိပ္လုိက္တဲ့အခ်ိန္မွာ ေနာက္စာမ်က္ႏွာကုိေရာက္သြားခ်င္တာျဖစ္တဲ့အတြက္ ပထမ Screen ရဲ႕ Button code ထဲမွာ Screen ေနာက္တစ္ခ်ပ္ကုိ ကူးေစမယ့္ code ကုိထည့္ေပးရမွာျဖစ္ပါတယ္။

Android Project ရဲ႕ src folder ထဲက com.xxx.xxx package ထဲကုိ၀င္ပါ။ ေအာက္ပုံအတုိင္းပါ။

 ျပီးရင္ Button code ထဲမွာ ေအာက္မွာေပးထားတဲ့ code ကုိထည့္ပါ။

 Intent intent = new Intent(getBaseContext(), jabout.class);

                 startActivity(intent);

အေပၚမွာေတြတုန္းကလုိပဲ jabout.class ဆုိတဲ့ေနရာမွာ ကြ်န္တာ္တုိ႕ဖန္တီးခဲ့တဲ့ java file အသစ္ရဲ႕ name "Forscreen2" ဆုိတာကထည့္ရပါမယ္။ ေအာက္ကအတုိင္းပါ။

Intent intent = new Intent(getBaseContext(), Forscreen2.class);

                 startActivity(intent);

ထည့္ျပီးသြားရင္ေတာ့ ေအာက္ပုံထဲကအတုိင္းျဖစ္ပါလိမ့္မယ္။



အခုဆုိရင္ေတာ့ လုပ္ေဆာင္ရမယ့္ step ေတြအားလုံးျပီးသြားပါျပီ။ ဖုန္း (သုိ႕မဟုတ္) Emulator နဲ႕ ကုိယ့္ Project/application ကုိ run ၾကည့္ဖုိ႕ပဲလုိပါေတာ့တယ္။ ဖုန္း (or) Emulator နဲ႕ run ၾကည့္လုိက္ပါ။ Button ကုိႏွိပ္လုိက္ပါက ေနာက္ screen တစ္ခ်ပ္ကုိေရာက္သြားတာကုိေတြ႕ရပါလိ္မ့္မယ္။



အားလုံးပဲအဆင္ေျပၾကပါေစ ။

ယခုသင္ခန္းစာကုိ အိမ္စာျပဳလုပ္ျပီး apk file ကုိ myanmarmobileapp@gmail.com သုိ႕ေမးလ္ပုိ႕ေပးရပါမည္။

သက္နုိင္စုိး (Myanmar Mobile App Store)

Wednesday, June 4, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၂၀)


ဒီေန႕ေတာ့ Screen တစ္ခ်ပ္ကေန ေနာက္တစ္ခ်ပ္ကိုကူးတဲ့ သင္ခန္းစာအေၾကာင္းကုိ နည္းနည္းရွင္းျပခ်င္ပါတယ္။ ဒီသင္ခန္းစာကေတာ့ Beginner ေတြအတြက္ နည္းနည္းေလးရႈပ္ေထြးမွာျဖစ္တဲ့အတြက္ အပုိင္း (၂) ပုိင္းခြဲေျပာမွအဆင္ေျပပါလိမ့္မယ္။ ဒီေန႕သင္ခန္းစာမွာေတာ့ သေဘာတရားကုိေျပာျပပါမယ္။ Screen တစ္ခ်ပ္ကေန ေနာက္တစ္ခ်ပ္ကိုကူးတဲ့ သင္ခန္းစာScreen တစ္ခ်ပ္မွာပါတဲ့ ခလုတ္ကုိႏွိပ္လုိက္တာနဲ႕ အျခား Screen တစ္ခ်ပ္ကုိေရာက္သြားတာမ်ိဳးကုိဆုိလုိတာပါ။ ေအာက္မွာပုံနဲ႕နမူနာျပထားပါတယ္။





ကြ်န္ေတာ္တုိ႕ေရးသားေနတဲ့ Project folder ထဲက res ဆုိတဲ့ folder ကုိဖြင့္လုိက္ပါ။ အတြင္းမွာပါတဲ့ folder ေတြထဲက layout folder ထဲကုိ၀င္ပါ။ အတြင္းမွာ activity_main.xml ဆုိတဲ့ file ကုိေတြ႕ရပါမယ္။

ကဲ... ေတြ႕ျပီဆုိရင္ ဒါကုိခဏထားပါဦး ။ ေမးခြန္းတစ္ခုအေနနဲ႕ျပန္ေမးၾကည့္ရေအာင္။
ကြ်န္ေတာ္တုိ႕ layout folder ထဲမွာ ဖုိင္ဘယ္ႏွခုေတြ႕ရလဲဆိုရင္ activity_main.xml ဆုိတဲ့ဖုိင္တစ္ခုပဲ ပါ ပါတယ္လုိ႕ေျဖရပါလိ့္္မ္မယ္။ ဒါဆုိ ေနာက္ထပ္ေမးခြန္းတစ္ခုထပ္ထြက္လာပါမယ္။ layout folder ထဲမွာ ဘာလုိ႕ activity_main.xml ဖုိင္တစ္ခုပဲ ပါလာလဲေပါ့။ ဒီအတြက္ျပန္ေျဖရမယ္ဆုိရင္ကြ်န္ေတာ္တုိ႕ project တစ္ခုေဆာက္ျပီးကာစမွာ ၊ လက္ရွိ run ၾကည့္ေနသေလာက္မွာ Screen ဘယ္ႏွခ်ပ္ ပါပါသလဲ ။ Screen ၁ ခ်ပ္သာ ပါ ပါေသးတယ္။ ဒါဟာအေျဖပဲျဖစ္ပါတယ္။ အရင္ကလည္း သင္ဖူးပါတယ္။ activity_main.xml ဆုိတာ Screen Design / Screen တစ္ခ်ပ္ကုိသိမ္းဆည္းထားတဲ့ Design file ျဖစ္ပါတယ္။ အခု layout ထဲမွာ Screen ဖုိင္တစ္ခ်ပ္ပဲရွိတယ္ဆုိေတာ့ ကြ်န္ေတာ္တုိ႕ရဲ႕ Project မွာ Screen တစ္ခုပဲရွိဦးမွာပါ။ ဒါဟာအေျဖပါပဲ။  ဒါဆုိရင္ layout ထဲမွာ xml file တစ္ခုပဲရွိတယ္ဆုိရင္ Screen တစ္ခ်ပ္ပဲရွိတယ္ဆုိရင္ layout ထဲမွာ Xml file ၂ ခုရွိတယ္ဆုိရင္ေရာ ?? ေအာက္ကပုံမွာ နမူနာၾကည့္ရေအာင္။



အေပၚကလုိမ်ိဳးဆုိရင္ေတာ့ ဒီ Project မွာ Screen ၂ ခ်ပ္ ပါ၀င္တယ္လုိ႕ေယဘုယ်အေနနဲ႕ ေျပာလုိ႕ရပါတယ္။ ဥပမာအေနနဲ႕ -


  1. res/layout/main.xml – Represent screen 1
  2. res/layout/main2.xml – Represent screen 2



ကြ်န္ေတာ္ အဓိကေျပာခ်င္တာက အေပၚကနမူနာျပထားတဲ့ Project မွာ Screen ၂ ခု ၃ ခုရွိတာကုိေျပာခ်င္တာမဟုတ္ပါဘူး ။ Project မွာ
Screen အခ်ပ္ အနည္းဆုံး ၂ ခုရွိမွ Screen တစ္ခ်ပ္ကေန တစ္ခ်ပ္ကေနကူးတဲ့ အပိုင္းကုိလုပ္ေဆာင္လုိ႕ရမွာပါ။  အခုရွင္းျပခဲ့တဲ့အထိေတာ့ သေဘာေပါက္ၾကမယ္ထင္ပါတယ္။

ေနာက္ထပ္ သိထားရမွာကေတာ့ ယင္း Screen ခ်ပ္တစ္ခ်ပ္ခ်င္းဆီမွာ java ဖုိင္ တစ္ခုဆီရွိရပါမယ္။ Java ဖုိင္ဆုိတာကေတာ့ Coding file ကုိေျပာတာပါ။ Screen ခ်ပ္မွာ ပါမယ့္ object ေတြနဲ႕ပတ္သက္တာေတြကုိ ယင္း Screen နဲ႕သက္ဆုိင္ရာ Java file မွာပဲ coding ေရးရပါတယ္။  ဥပမာအေနနဲ႕ေျပာရရင္ ကြ်န္ေတာ္တုိ႕ ျပီးခဲ့တဲ့သင္ခန္းစာေတြမွာတုန္းက Button ကုိႏွိပ္လုိက္ရင္ ျဖစ္ခ်င္တာေလးေတြကုိေရးခဲ့ၾကပါတယ္။ အဲဒီတုန္းက ဘယ္ဖုိင္မွာ ကြ်န္ေတာ္တုိ႕၀င္ေရးခဲ့ၾကပါသလဲ ?  src ေအာက္က package ေအာက္က MainActivity.java ဖုိင္မွာ၀င္ေရးၾကပါတယ္။  ဘာလုိ႕ အဲဒီဖုိင္မွာေရးတာလဲေပါ့ ။ ေမးခြန္းက ထပ္ရွိလာျပန္ပါျပီ။ ျပန္ေျဖ၇မယ္ဆုိရင္ေတာ့ MainActvity.java ဖုိင္ဟာ layout folder ေအာက္မွာရွိေနတဲ့ Activity_main.xml ဖုိင္ရဲ႕ coding ဖုိင္ျဖစ္ေနလုိ႕ပါပဲ။ ကြ်န္ေတာ္ အေပၚမွာတုန္းက ေျပာခဲ့သလုိပဲ ယင္း Screen file နဲ႕သက္ဆုိင္ရာ coding file မွာပဲ code ၀င္ေရးရပါတယ္။ အဲဒီေတာ့ ကြ်န္ေတာ္တုိ႕မွတ္ထားရမွာက Screen file တစ္ဖုိင္မွာ coding ဖိုင္တစ္ဖုိင္ရွိရမယ္လုိ႕မွတ္ထားပါ။
Screen file ၂ ဖုိင္ဆုိရင္ coding ဖုိင္ကလည္း ၂ ဖုိင္ေပါ့ေနာ္ ။ ဥပမာအားျဖင့္


  1. MainActivity.java –> activity_main.xml
  2. App2Activity.java –> main2.xml
အေပၚမွာျပထားတဲ့ ဥပမာ ကေတာ့ Screen တစ္ခ်ပ္ဟာ ယင္း Screen နဲ႕သက္ဆုိင္နဲ႕ coding file နဲ႕ ခ်ိတ္ဆက္ထားရတယ္ဆုိတာကုိ ေျပာခ်င္တာပါ။ ဒါေၾကာင့္ ကြ်န္ေတာ္တုိ႕က Project ထဲမွာ ေနာက္ထပ္ Screen တစ္ခ်ပ္ ထပ္ေဆာက္ျပီဆုိရင္ Screen file (xml) ဖုိင္ကုိပဲေဆာက္လုိ႕မရပါဘူး ။ သူနဲ႕တြဲဖက္လုပ္ေဆာင္ရမယ့္ coding file( java ) ကုိပါတြဲဖက္ေဆာက္ေပးရပါတယ္။


ဒီေန႕ေတာ့ ဒီေလာက္ပါပဲ ။ ဒီေန႕သင္ခန္းစာကုိ ေသခ်ာျပန္ဖတ္ၾကည့္ပါဦး ။ ေနာက္ရက္မ်ားမွာ ဒီေန႕သင္ခန္းစာကုိ ဆက္လက္ရွင္းျပေပးပါမယ္။ မရွင္းတာရွိရင္ myanmarmobileapp@gmail.com သုိ႕ဆက္သြယ္ေမးျမန္းထားနုိင္ပါတယ္။









Thursday, May 22, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၁၉)


ယခုအပုိင္း (၁၉) သင္ခန္းစာကေတာ့ အပုိင္း (၁၁) မွာလုပ္ထားလက္စကုိ ဆက္လုပ္ၾကရမွာျဖစ္ပါတယ္။ အခု ေျပာျပေပးခ်င္တာကေတာ့ Button ကုိႏွိပ္လုိက္ရင္ ေဆာ့၀ဲထဲကေန ထြက္ခ်င္တာပါ ။ ကုိယ္သတ္မွတ္ေပးလုိက္တဲ့ဖုန္းနံပါတ္ေပါ့ေနာ္ ။ ဥပမာ- ခလုတ္ကုိႏွိပ္လုိက္တာနဲ႕ေဆာ့၀ဲထဲကေနထြက္သြားမွာပါ။ အပုိင္း (၁၁) သင္ခန္းစာမွာတုန္းက ကြ်န္ေတာ္တုိ႕ Button code ထည့္တဲ့အပုိင္းအထိျပီးခဲ့ပါျပီ။ ေအာက္ပုံအတုိင္းပါ။


ယင္း Button code ထဲကုိ  ေဆာ့၀ဲထဲကေနထြက္ေစတဲ့ code ကုိထည့္ပါမယ္။ ေဆာ့၀ဲထဲကေနထြက္ေစတဲ့ code ကေအာက္ပါအတုိင္းပါ။

System.exit(0);

ယင္း code ကိုထည့္ရမယ့္ေနရာကေတာ့  Button Code ရဲ႕ public void onClick(View v) ဆုိတဲ့ coding 
ရဲ႕  {} ၾကားမွာျဖစ္ပါတယ္။ အရင္သင္ခန္းစာေတြတုန္းကလုိပါပဲ။
 
Error မီးေလးေတြကုိေတာ့ ထုံးစံအတုိင္းပဲ error မီးေလးေပၚမွာႏွိပ္ ၊ Import..... ကုိႏွိပ္ျပီးရွင္းလုိက္ပါ။
 
 ျပီးရင္ေတာ့ ထုံးစံအတုိင္းပဲ ဖုန္း (သုိ႕) Emulator နဲ႕ Project ကုိ run ၾကည့္လုိက္ပါ။ Project တက္လာျပီဆုိရင္ app ထဲက Button ကုိႏွိပ္ပါ။ ေဆာ့၀ဲထဲကေနထြက္သြားပါလိမ့္မယ္။


အသိေပးခ်က္ ။ ။ယခု Student Online Campus မွသင္ခန္းစာမ်ားကုိ ျပင္ပWebsite ၊ စာရြက္စာတမ္း မ်ားတြင္ ကူးယူေဖာ္ျပျခင္းမျပဳရန္အသိေပးအပ္ပါသည္။  
 












Wednesday, May 21, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၁၈)


ယခုအပုိင္း (၁၈) သင္ခန္းစာကေတာ့ အပုိင္း (၁၁) မွာလုပ္ထားလက္စကုိ ဆက္လုပ္ၾကရမွာျဖစ္ပါတယ္။ အခု ေျပာျပေပးခ်င္တာကေတာ့ Button ကုိႏွိပ္လုိက္ရင္ ဖုန္းေခၚခ်င္တာပါ ။ ကုိယ္သတ္မွတ္ေပးလုိက္တဲ့ဖုန္းနံပါတ္ေပါ့ေနာ္ ။ ဥပမာ အိမ္ဖုန္းနံပါတ္ကုိ app ထဲမွာထည့္ေရးထားတယ္ဆုိရင္ ခလုတ္ကုိႏွိပ္လုိက္တာနဲ႕ အိမ္ဖုန္းကုိ direct တန္းေခၚမွာပါ ။
အခု Button ကုိႏွိပ္လုိက္တာနဲ႕ ဖုန္းေခၚမယ့္ app ေလးတစ္ခုေရးၾကည့္ရေအာင္။ အပုိင္း (၁၁) သင္ခန္းစာမွာတုန္းက ကြ်န္ေတာ္တုိ႕ Button code ထည့္တဲ့အပုိင္းအထိျပီးခဲ့ပါျပီ။ ေအာက္ပုံအတုိင္းပါ။



ယင္း Button code ထဲကုိ  ဖုန္းေခၚတဲ့ code ကုိထည့္ပါမယ္။ ဖုန္းေခၚတဲ့ code ကေအာက္ပါအတုိင္းပါ။

Intent intent = new Intent(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + bundle.getString("YourPhoneNumber")));
context.startActivity(intent);
 
အေပၚမွာျပထားတာကေတာ့ ဖုန္းေခၚဆုိမႈျပဳလုပ္တဲ့ code ပါ။ YourPhoneNumber ဆုိတဲ့ေနရာမွာ 
ကုိယ္ေခၚခ်င္တဲ့ဖုန္းနံပါတ္ကုိထည့္ထားပါ။ ေအာက္ပါအတုိင္းပါ။
 
Intent intent = new Intent(Intent.ACTION_CALL);
             intent.setData(Uri.parse("tel:092003741" ));
             startActivity(intent);

ကုိယ္အသုံးျပဳခ်င္တဲ့
 code ကိုထည့္ရမယ့္ေနရာကေတာ့  public void onClick(View v) ဆုိတဲ့ coding 
ရဲ႕  {} ၾကားမွာျဖစ္ပါတယ္။ အရင္သင္ခန္းစာေတြတုန္းကလုိပါပဲ။
 
Error မီးေလးေတြကုိေတာ့ ထုံးစံအတုိင္းပဲ error မီးေလးေပၚမွာႏွိပ္ ၊ Import..... ကုိႏွိပ္ျပီးရွင္းလုိက္ပါ။
 
Error ေတြရွင္းျပီးသြားရင္ေတာ့ ကုိယ့္ app ရဲ႕ Project folder ထဲက AndroidManifest.xml ထဲကုိ၀င္ပါ။



Android Manifest.xml ဖုိင္ထဲေရာက္သြားရင္ ေအာက္ပုံထဲကလုိ xml coding ေတြကုိေတြ႕ရပါမယ္။



</application> ဆုိတဲ့ေအာက္မွာ ေအာက္ပါ permission code ကုိထည့္ပါ။

<uses-permission android:name="android.permission.CALL_PHONE" />

အေပၚမွာျပထားတဲ့ code ကေတာ့ ဖုန္းေခၚဆုိတဲ့ permission ကုိ Android System ကုိခြင့္ေတာင္းတဲ့ permission code ျဖစ္ပါတယ္။ ေအာက္မွာ ယင္း permission code ကုိထည့္ထားျပီးတဲ့အဆင့္အထိ နမူနာျပထားပါတယ္။




 ျပီးရင္ေတာ့ ထုံးစံအတုိင္းပဲ ဖုန္း (သုိ႕) Emulator နဲ႕ Project ကုိ run ၾကည့္လုိက္ပါ။ Project တက္လာျပီဆုိရင္ app ထဲက Button ကုိႏွိပ္ပါ။ ကုိယ္သတ္မွတ္ေပးထားတဲ့ ဖုန္းနံပါတ္ကုိဖုန္းေခၚပါလိမ့္မယ္။

အိမ္စာအေနနဲ႕ ၾကိဳက္ႏွစ္သက္ရာ နံပါတ္တစ္ခုကုိဖုန္းေခၚတဲ့ app တစ္ခုေရးျပီး myanmarmobileapp@gmail.com သုိ႕ေပးပို႕ရပါမယ္။

အသိေပးခ်က္ ။ ။ယခု Student Online Campus မွသင္ခန္းစာမ်ားကုိ ျပင္ပWebsite ၊ စာရြက္စာတမ္း မ်ားတြင္ ကူးယူေဖာ္ျပျခင္းမျပဳရန္အသိေပးအပ္ပါသည္။  

 


Monday, May 19, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၁၇)


ယခုအပုိင္း (၁၇) သင္ခန္းစာကေတာ့ အပုိင္း (၁၁) မွာလုပ္ထားလက္စကုိ ဆက္လုပ္ၾကရမွာျဖစ္ပါတယ္။ အခု ေျပာျပေပးခ်င္တာကေတာ့ Button ကုိႏွိပ္လုိက္ရင္ ဖုန္း Bill စစ္ခ်င္တာပါ ။ GSM/CDMA ဖုန္းေဘလ္ေပါ့ဗ်ာ။ လက္ရွိ ထြက္ရွိထားတဲ့ Bill စစ္တဲ့ application ေလးေတြဘယ္လုိအလုပ္လုပ္လဲဆိုတာကုိ သိေစခ်င္တာလည္း ပါ ပါတယ္။
အခု Button ကုိႏွိပ္လုိက္တာနဲ႕ ဖုန္းေဘလ္စစ္မယ့္ app ေလးတစ္ခုေရးၾကည့္ရေအာင္။ အပုိင္း (၁၁) သင္ခန္းစာမွာတုန္းက ကြ်န္ေတာ္တုိ႕ Button code ထည့္တဲ့အပုိင္းအထိျပီးခဲ့ပါျပီ။ ေအာက္ပုံအတုိင္းပါ။

ယင္း Button code ထဲကုိ  ဖုန္းေဘလ္စစ္တဲ့ code ကုိထည့္ပါမယ္။
 GSM Bill စစ္တဲ့ code ကေအာက္ပါအတုိင္းပါ။
Intent ii = new Intent(Intent.ACTION_CALL);

 startActivity(new Intent("android.intent.action.CALL",Uri.parse("tel:*124" + Uri.encode("#"))));   


CDMA Bill စစ္တဲ့ code ကေအာက္ပါအတုိင္းပါ။

Intent ii = new Intent(Intent.ACTION_CALL);
startActivity(new Intent("android.intent.action.CALL",Uri.parse("tel:*162")));   
  



ကုိယ္အသုံးျပဳခ်င္တဲ့ code ကိုထည့္ရမယ့္ေနရာကေတာ့  public void onClick(View v) ဆုိတဲ့ coding ရဲ႕  {} ၾကားမွာျဖစ္ပါတယ္။ ေအာက္ပါအတုိင္းပါ။







Error မီးေလးေတြကုိေတာ့ ထုံးစံအတုိင္းပဲ error မီးေလးေပၚမွာႏွိပ္ ၊ Import..... ကုိႏွိပ္ျပီးရွင္းလုိက္ပါ။ ေအာက္ပုံအတုိင္းပါ။


Error ေတြရွင္းျပီးသြားရင္ေတာ့ ကုိယ့္ app ရဲ႕ Project folder ထဲက AndroidManifest.xml ထဲကုိ၀င္ပါ။



Android Manifest.xml ဖုိင္ထဲေရာက္သြားရင္ ေအာက္ပုံထဲကလုိ xml coding ေတြကုိေတြ႕ရပါမယ္။



</application> ဆုိတဲ့ေအာက္မွာ ေအာက္ပါ permission code ကုိထည့္ပါ။

<uses-permission android:name="android.permission.CALL_PHONE" />


အေပၚမွာျပထားတဲ့ code ကေတာ့ ဖုန္းေခၚဆုိတဲ့ permission ကုိ Android System ကုိခြင့္ေတာင္းတဲ့ permission code ျဖစ္ပါတယ္။ ေအာက္မွာ ယင္း permission code ကုိထည့္ထားျပီးတဲ့အဆင့္အထိ နမူနာျပထားပါတယ္။




 ျပီးရင္ေတာ့ ထုံးစံအတုိင္းပဲ ဖုန္း (သုိ႕) Emulator နဲ႕ Project ကုိ run ၾကည့္လုိက္ပါ။ Project တက္လာျပီဆုိရင္ app ထဲက Button ကုိႏွိပ္ပါ။ ေဘလ္စစ္ပါလိမ့္မယ္။

အိမ္စာအေနနဲ႕ GSM /CDMA ေဘလ္စစ္တဲ့ app တစ္ခုေရးျပီး myanmarmobileapp@gmail.com သုိ႕ေပးပို႕ရပါမယ္။

အသိေပးခ်က္ ။ ။ယခု Student Online Campus မွသင္ခန္းစာမ်ားကုိ ျပင္ပWebsite ၊ စာရြက္စာတမ္း မ်ားတြင္ ကူးယူေဖာ္ျပျခင္းမျပဳရန္အသိေပးအပ္ပါသည္။  


Myanmar Android Development မွ Android Dev Lessons မ်ားကုိ အျခား website မ်ား ၊ ျပင္ပစာအုပ္စာေပမ်ားတြင္ကူးယူေဖာ္ျပျခင္းမျပဳ ၾကပါရန္အသိေပးအပ္ပါသည္။