Showing posts with label Kavimal Wijewardana. Show all posts
Showing posts with label Kavimal Wijewardana. Show all posts

Tuesday, May 28, 2013

Android Transaction App - SQLite Database in Android App - 3

Android Transaction App

SQLite Database in Android App - 3





       මාසයකට ආසන්න කාලයක් ලිපි පල කිරීමට නොහැකි වීම ගැන ඔයාල හැමෝගෙන්ම මම සමාව ඉල්ලනවා. මම ටිකක් කාර්ය බහුල වීම නිසා ඒ අතපසුවීම සිදුවුනා. එහෙනම් අපි නවත්වපු තැන් ඉදන් පටන්ගමු.

                     අපි අලුතින් App එකක් හදන්න පටන් ගත්තා. ඒ SQLite Database එකක් Android App එකක් ඇතුලේ භාවිතා කරන්නේ කොහොමද කියල ඉගෙන ගන්න. අපි හදමින් හිටිය App එකේ interfaces දෙකක් ගැන කතා කලා. එහි එකක්  App එකේ menu එක, අනිත් එක database එකට record එකක් ඇතුල් කිරීම සඳහා වූ  interface එකයි. අපි ඉතිරි ඒවා හා code එක ගැන අද ඉදන් බලමු.




1. remove_trasaction.xml


 ඉහත  interface එක සකස් කරල තියෙන්නේ, ඔයාලගෙ App එකේ Database record එකක් ඉවත් කරන්න භාවිතා කරන  interface එකයි. බලන්නකො එම interface එකේ අලුත් කොටසක් තියෙනවා නේද? අපි කලින් interface එකේ දැක්ක වගේම radio button දෙකක් එහිත් ඇතුලත් වෙනවා නේද? එම radio button වල අරමුන තමයි, record එක ඉවත් කරන්නේ කුමන පදනම මතද යන්න පෙන්නලා දෙන එකයි. මෙහි ඔයාලට record එකේ නම හෝ record එකේ id එක හරහා record එක ඉවත් කරන්න පුළුවන්.

දැන් අපිට පුළුවන් record add කරන්න වගේම delete කරන්නත්. නමුත් අපි database එකේ තියෙන records පෙන්වන්නත් ඕනි නේද? ඒ සඳහා අපි මෙහෙම වැඩක් කරනවා. 

බලන්නකො ඔයාලට මම කලින් ලිපියේ පෙන්නලා තිබුන project structure එකේ transaction_list.xml හා trc_row_view.xml කියල .xml දෙකක් තියෙනවා. සරලවම කියනවා නම්, trc_row_view.xml එකෙන් අපේ එක  record එකක් පෙන්වනවා. ඒ වගේ records list එකක් transaction_list.xml මඟින් පෙන්වනවා. පහත රූපය බලන්නකො එතකොට තේරේවි අපි මොකද්ද කරන්න යන්නේ කියල.

ඔයාල .xml දෙක හදලා දාගන්නකො අපි ඒක වැඩ කරන්නේ කොහොමද කියලා පසුවට කතා කරමු.

2. trc_row_view.xml


ඉහත  .xml එකට මට screen shot එකක් පෙන්වන්න අමරුයි. ඒව ඇතුලත් වෙන්නේත් transaction_list.xml එකේම තමයි. මේ .xml content එක බැලුවොත් ඔයාලට දැක ගන්න පුළුවන් වෙවි, එහි කලින් interface වල වගේ layout tag එකක් නැති බව. එහි තියෙන්නේ <TextView> tag එකක් නේද? එතකොට අපි මේ කරන්නේ, අපේ Database එකෙන්  record එකක් අරගෙන මේ TextView එකකට set කරනවා. එම TextViews එකින් එක, transaction_list.xml interface එකේදී list එකක් විදියට load කරනවා.

බලන්නකෝ පහත තියෙන transaction_list.xml එක, එහි තියෙන්නේ <ListView> කියලා tag එකක්.

3. transaction_list.xml




දැන් අපේ App එකේ interface වල වැඩ ඉවරයි. අපි දැන්  code එක කරලා ඉහත interface වල තියෙන දේවල් වැඩ කරන්න සකස් කරන්න ඕනි. අපි මීලඟ ලිපියෙන් code එක ගැන කතා කරමු.

ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 


Read More

Sunday, March 17, 2013

Android Transaction App - SQLite Database in Android App - 2


Android Transaction App

SQLite Database in Android App - 2


    ඔයාල පෙර ලිපිය කියවලා, ඒක කලා නම් errors එන්න ඇති. එයට හේතුව තමයි. අපේ main.xml එකේ තියෙන image buttons වලට උවමනා කරනා images මම සපයලා තිබුන නැති එක. ඇත්තෙන්ම ඔයාලට කැමති විදියක images භාවිතා කරන්න පුළුවන් ඒ සඳහා. මම මුලින්ම පෙන්නලා දෙන්නම්, ඒ images දාන්න ඕනෙ කොහෙටද, හා ඒවා code එකේ define කරලා තියෙන්නේ කොහොමද කියන එක.


ඉහත රූපයේ තියෙන්නේ අපේ App එකේ res directory එක. බලන්නකො එතන, අලුත් directory එකක් තියෙනවා නේද drawable කියලා. අන්න එතනට තමයි, අපි භාවිතා කරන images දාන්න ඕනි. 

ඔයාලට පේනවා ඇති මගෙ උදාහරනයේ images 7ක් භාවිතා කරලා තියෙනවා. ඒවා තියෙන්නේ මගෙ main.xml එකේ. ඒ buttons වලට හා main.xml එකේ පසුබිමට.



අපි දැන් බලමු, අපේ main.xml එකේ අලුතින් කරලා තියෙන දේවල් මොනවද කියලා.

   මෙහිදී අපි සාමාන්‍ය විදියට RelativeLayout එකක් භාවිතා කරලා තියෙනවා. නමුත් හොඳට බැලුවොත් දැක ගන්න පුළුවන් වේවි, අපි කලින් කතා කරපු App එකක තිබුනාට වඩා අලුත් attribute එකක් එහි තියෙනවා. ඒ තමයි

android:background="@drawable/menu_background"

මෙන්න මේ හරහා තමයි මගේ App එකේ main.xml එකට පසුබිම් රූපයක් දාල තියෙන්නේ.

දැන් බලන්නකෝ අපි තව අලුත් tag එකක් යොදාගෙන තියෙනවා. ඒ තමයි <ImageButton> tag එක. මෙයත් සාමාන්‍ය Button එකක්ම තමයි, නමුත් එහි ඇති විශේෂය වන්නේ එයට රූපයක් ඇතුලත් කරන්න හැකිවීමයි. මම එක කොටසක් විස්තර කරන්නම්.

<ImageButton
  android:layout_width="90dp"
  android:layout_height="85dp"
  android:id="@+id/payment_list_button
  android:src="@drawable/list"
  android:scaleType="fitCenter"
  android:background="@color/grey"
  android:layout_centerHorizontal="true" 
 android:layout_alignTop="@+id/add_payment_button"
/>

    මේ Button එකේ තියෙන sizes වෙනස්. ඒක නිසා තමයි, android:layout_width හා android:layout_height කියන ඒවා dp ලෙස අගයන් දීලා තියෙන්නේ. මෙහි android:src කියන attribute එක හරහා තමයි, අපේ Button එකේ පෙන්විය යුතු Image එක ලබා දෙන්නේ. බලන්නකො ඒක define කරල තියෙන කොහොමද කියලා. 

@drawable/list මේ drawable කියලා කියන්නේ අපේ images තියෙන directory එක. එතකොට  list කියලා කියන්නේ අපි පෙන්වන්න බලාපොරොත්තු වෙන image එක. 

android:scaleType="fitCenter" කියන කොටස හරහා අපේ image එක Button එකේ මැද කොටසට සමබර වෙන විදියට ස්ථාන ගත කරලා තියෙන්නේ. android:background="@color/grey" කොටසින් මම මගේ Button එකට පසුබිම් වර්ණයක් දීලා තියෙනවා.


දැන් අපි add_transactions.xml එක ගැන සලකලා බලමු.
බලන්නකො එහි අලුත් දේවල් කිහිපයක්ම තියෙනවා නේද?

එක මුලින්ම බලනකොට සාමාන්‍ය විදියේ linearlayout එකක් තියෙනවා. එහි තුල <ScrollView> කියල tag එකක් ඔයාලට දැක ගන්න පුළුවන් වේවි. ඔයාල මේ interface එක හදලා බැලුවනම් ඔයාල අත් දකින්න ඇති, එක උඩට හා පහලට තල්ලු (Scroll) කරන්න පුළුවන් බව. අන්න ඒ හැකියාව ලැබිල තියෙන්නේ මෙන්න මේ <ScrollView> එක නිසා. 

ඉන් පසුව තවත් පහලට එනකොට, ඔයාලට දැක ගන්න පුළුවන් 
<DatePicker> හා <TimePicker> කියලා tags දෙකක්. මේවා අපිට දිනයක් හා කාලයක් ලබා ගැනීමට, යොදා ගන්න පුළුවන්.

ඉන් පසුව තවත් වැදගත් කොටසක් තියෙනවා. ඒ තමයි RadioButton කියන එක. අපි RadioButton භාවිතා කරන්නේ කිසියම් එක තෝරා ගැනීමක් සඳහා. අපගේ උදාහරනයේ ඒ වගේ තෝරාගැනීම් දෙකක් තියෙනවා. ඒ තමයි  Payments හා  Income කියන ඒවා. එකවර තෝරා ගත හැකිවිය යුත්තේ එකක් පමණයි. එම නිසා අපගේ RadioButton දෙක, එක RadioGroup එකක් තුලට ගොනු කර තියෙනවා ඔයාලට බලා ගන්න පුළුවන්.

පහතින් වෙන කොටස් වල තිබෙන්නේ අපි මීට පෙර විස්තර ඇතිව කතා කල කොටස්, වෙන වෙන ආකාර වලින් යොදා ගැනීම් කිහිපයක්.

අපි මීලඟ ලිපියෙන් අනිකුත් interfaces ගැන කතා කරමු.


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 

Read More

Tuesday, February 26, 2013

Android Transaction App - SQLite Database in Android App - 1




Android Transaction App



SQLite Database in 

Android App - 1





      අපි ගිය සතියේ කතා කරපු විදියට, මේ සතියේ සිට Android වල අලුත් කොටසක් කතා කරන්න තමයි සූදානම් වෙන්නේ. ඒ තමයි Android App එකක් ඇතුලේ Database එකක් භාවිතා කරන්නේ කොහොමද කියන එක. මම ඒ කොටස ඉදිරිපත් කරන්න බලාපොරොත්තු වෙන්නේත් කලින් වතාවෙ වගේම App එකක් හදන ගමන් ම තමයි. අපි අපේ ආදායම් හා වියදම් සටහන් කරන්න පුළුවන්, ඒවා වාර්තා විදියට තියා ගන්න පුළුවන් පොඩි App එකක් හදමු.

       එහිදී අපි කතා කරනවා, කොහොමද  Android App එක ඇතුලේ Database එක හදන්නේ, ඒ Database එකට Data ඇතුල් කරන්න (insert), ඉවත් කරන්න (remove) හා අන්තර්ගතය බලා ගන්න (select) විදියවල් ගැන.

   ඒවගේම මම භාවිතා කරන IDE එක IntelliJ IDEA එකත් අලුත් වෙලා තියෙනවා. Android වලට ලොකු support එකක් දීලා තියෙනවා IDEA 12 එක්ක. මම මේ App එක හදන්නේ IDEA 12 එකෙන්. ඔයාලට බලන්න පුළුවන් වෙවි එතන තියෙන අලුත් දේවල් මොනවද කියලත්.

අපි මුලින්ම අපේ App එකේ project structure එක බලලා ඉමු.



ඔයාල දකින්න ඇති. මේක අපේ කලින් App වගේ ගොඩක් ම සරල නෑ. නමුත් අපි හෙමිහිට, සරලව එකින් එක කතා කරමු.


    මම කීවානේ IntelliJ IDEA 12 එක ගැනත් කියනවා කියලා. බලන්නකෝ එහෙනම් පහත රූපය. මෙහි Android App එකක interface නැතිනම් UI එක සකස් කර ගැනීම සඳහා අගනා designing environment එකක් සපයලා දීලා තියෙනවා. 










     
     මීට කලින් කිසිම Java IDE එකක් Android සඳහා මෙතරම් පහසු  designing environment එකක් ලබාදීලා නැහැ. නමුත් දැන්  App-Inventor කියල IDE එකක් ඇවිල්ල තියෙනවා. මට නම් තවම එය අත්හදා බලන්න බැරි උනා. ඔයාල මේ link එක හරහා ඒක උත්සහ කරලා බලන්න පුළුවන්.

http://beta.appinventor.mit.edu/


අපි ඒක ගැන පසුවට විස්තර ඇතිව කතා කරමු. පහත  link එකෙන් මම භාවිතා කරන, අලුත්ම IntelliJ IDEA 12 එක download කරගන්න පුළුවන් ඔයාලට.

http://www.jetbrains.com/idea/download/index.html

ඔයාලට ඒක සඳහා වූ keygen එක පහත  link එකෙන්  download කර ගන්න පුළුවන්.

http://www.ziddu.com/download/21674317/keygen_linux.rar



හරි අපි දැන් මුලින්ම බලමු, මොනවද අපේ resource files කියලා. string.xml එකත් colors.xml එක මේ App තියෙනවා නේද? ඒවා මම කලිනුත් කීවා වගේ ගොඩක් Android App වලට පොදු දේවල්.


1.) colors.xml

2.) strings.xml



බලන්නකෝ අපේ  App එකේ interface 5ක් තියෙනවා. ඒවා, main.xml,add_transactions.xml,remove_transactions.xml, transaction_list.xml, controller.xml කියන ඒවා. මෙම ලිපිය තුලින් අපි  main.xml හා  add_transactions.xml එක ගැන අවධානය යොමු කරමු.




3.) main.xml

     ඔය තියෙන්නේ අපේ App එකේ menu මෙතනින් තමයි අනිකුත් තැන් වලට යන්න buttons දීලා තියෙන්නේ. එම buttons වල අපි කලින් වතාවෙ භාවිතා කරමු ඒවට වඩා විශේෂත්වයක් තියෙනවා නේද? එනම් එම button පින්තූර ඇතුලත් කරලා තියෙන එක. ඔයාල .xml code එක බලුවොත් ඔයාලට පෙනේවි, ඒව සඳහා අපි භාවිතා කරල තියෙන්නේ නිකම්ම <Button> tag එක නෙවෙයි  <ImageButton> කියල අලුත් tag එකක්. ඒ වගේම අපි interface එකට background image එකක් එකතු කරලා තියෙනවා. (ඇත්තටම කියන්න ඕනි මගේ designs නම් ලස්සන නැහැ)





4.) add_transactions.xml



      මේ තමයි අපි අද කතා කරන්න බලාපොරොතුවෙන අනිත් interface එක. මේකෙන් තමයි, අපේ App එකේ Data insert කොටස කරන්නේ. ඒ කියන්නෙ අපි අපේ මුදල් ගනු දෙනුවක තොරතුරු ඇතුලත් කරන්නේ මෙතනින්. බලන්නකො අපි එහි අලුත්  tag කිහිපයක්ම භාවිතා කරලා තියෙනවා. ඒවගේම interface එක scroll කරන්න පුළුවන්.

අපි මීළඟ ලිපියෙන් මේ interface දේකේ content එක ගැන, අපි භාවිතා කරල තියෙන අලුත්  tags ගැන විස්තර ඇතිව කතා කරමු. 


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 
Read More

Sunday, February 17, 2013

Android Few Stuff - මේවත් දැන ගන්න


   
 
Android - Few Stuff
මේවත් දැන ගන්න එක හොඳයි...




ඇත්තටම කෙටි විරාමයකට පස්සේ Android ගැන තවත් අලුත් වැදගත් දේවල් කිපයක් කතා කරන්න තමයි මේ අපි ලෑස්ති වෙන්නේ. 

මේ ලිපිය ටිකක් කෙටි ලිපියක් වේවි, මොකද මම මේ ලිපිය හරහා කතා කරන්න බලාපොරොත්තු වෙන්නේ ඉදිරියේදී අපි කතා කරන්න යන දේවල් හා ඉතා සුළු නමුත් වැදගත් කරුනු කිහිපයක්.


මොකද්ද මේ R.java file එක ?

  මතක් කරලා බලන්නකෝ ඔයාල පාසලට ඇතුලත් උනාට පස්සේ, ඔයාලට ඇතුලත් වීමේ අංකයක් ලැබුනා නේද? එතකොට පාසලේ සිදු කරපු ඔයාලගෙ විවිධ කටයුතු වලදී ඔයාලව හඳුනා ගන්න භාවිතා කලේ ඒ ඇතුලත්වීමේ අංකය නේද? සමහර වෙලාවට ඔයාලව ඔයාලගෙ නමින් හඳුන් වෙන්නේ නැතිව, ඔයාලගෙ ඇතුලත්වීමේ අංකයෙන් හඳුන්වන්න ඇති. එකක් මතක් කලොත් ඔයාලගෙ වාරෙ අන්තිමට ලකුණු දාන වෙලාවෙ, ඒ පොතේ තිබුනේ ඇතුලත්වීමේ අංකය, ඒ වගේම ඔයාලගෙ පැමිණීම ලකුණු කරපු පැමිණීමේ නාම ලේඛනයේ ඔයාලගෙ නමත් එක්කම තිබුනේත් ඔය කියපු ඇතුලත් වීමේ අංකය.

ඒ විදියට අංකයක් යොදාගෙන තියෙන්නේ හඳුනා ගැනීමේ හා නම් කිරීමේ පහසුව සඳහා, ඒ පාසලේදී නේ..., එතකොට Android වල මේ R.java file එක හරහාත් කරලා තියෙන්නේ අපේ Android App එකක තියින සියලුම resources වලට, ඒ කියන්නේ..., variables, objects, strings, colors වගේ හැම එකක් සඳහාම int type id එකක් තියා ගන්න එක. ඔයාලට ඔය R.java file එක open කලොත් බලා ගන්න පුළුවන් int type variables ගොඩක්.


අපේ Android App එකේ හඳුන්වලා දීපු මොකක් හරි resource එකක් තවත් තැනක භාවිතා කරනවා නම් ඒ සඳහා අපි මේ R.java file එක භාවිතා කරනවා. ඒක භාවිතා කරද්දී, R.layout.*, R.id.*, R.string.* යන ආකාර වලින් අපේ resources පෙන්නලා දෙන්න පුළුවන්.




එතකොට AndroidMainifest.xml කියන්නේ මොකද්ද?

  මෙය සෑම Android App එකක් සඳහාම පොදු හා තිබිය යුතුම අංගයක්. මේ AndroidMainifest එක හරහා අපේ App ගැන අවශ්‍ය කරනම තොරතුරු Android system එකට කියලා දෙන්නේ. එතකොට Android system එකකින් Android App එකක් run කරන කොට මුලින්ම කරන දේ තමයි AndroidMainifest එක කියවලා, එම App සඳහා ඕනි කරන පරිසරය Android device එක තුල සකස් කරන එක.
 

මේ ප්‍රධාන දෙයට අමතරව, පහත කටයුතුද  AndroidMainifest එක මඟින් සිදුකරයි.
  • අපේ java code එකේ තියෙන packaging හඳුනා ගෙන ඒවා සඳහා unique identifier සදා ගැනීම.
  • App එකේ තියෙන components ගැන, activities ගැන,  services ගැන (ඔයාගෙ App එක Internet හෝ google වගේ දේවල් භාවිතා කරනවා නම්)
  • App එක සඳහා ඕනි කරන්නේ මොනවගේ processes එකක්ද යන්න ගැන තීරණය කිරීම.
  • App එක සඳහා අවශ්‍ය කරන permission level එක ගැන තීරණය කිරීම. (ඔයාගෙ App එක ක්‍රියා කිරීම සඳහා අවශ්‍ය වන්නේ user permissionද,  root permissionද, යන වග)
  • App එක සඳහා ඕනි කරන අවම Android version සටහන් කරගැනීම.

හරි. අපි මේත් එක්කම Android වල තවත් අලුත් කොටසක් කතා කරන්න බලාපොරොතු වෙනවා. ඒ තමයි, Android App ක් තුල database එකක් භාවිතා කරන්නේ කොහොමද කියන එක. අපි දැනට කරලා තියෙන දේවල් එක්ක ඕනිම විදියේ instant app එකක් හදන්න. ඒ කියන්නේ, තාවකාලික තොරතුරු සමඟ වැඩ කරන app එකක්. නමුත් අපේ app එකට තොරතුරු කල් තබාගෙන වැඩ කරන්න පුළුවන් නම් හොඳයි නේද? අපි ඒකත් කලින් වතාවෙ වගේම app එකක් හදන ගමන් ම කතා කරමු.

අපි හදමු තමන්ගේම වියදම් සටහන් කරන්, ඒවා පාලනය කරන්න පහසු කරනවන app එකක්. ඔයාලත් මාත් එක්ක එකතු වෙලා, ඉගෙන ගන්න ගමන්, තමන්ට වැදගත් වෙන app එකක් හදාගෙන භාවිතා කරන්න. 

එහෙනම් අපි මීළග ලිපියෙන් මුනගැසෙමු.



ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com

Read More

Sunday, January 13, 2013

අදුරට එලියක්. Flash Light App - 4



   Android App
    අදුරට එලියක්
    
  Flash Light App - 4

   java එක්ක කරපු ගනු දෙනු...


මීට කලින් ලිපියෙදි අපි, .xml වල ඇතුලාන්තය ගැන කතා කලානේ. අපි අද බලමු, java වලින් කරලා තියෙන දේවල් ගැන.

ඇත්තෙන්ම අපි  Android App එකක, ක්‍රියාකාරීත්වය සිදුවෙන්නේ java වලින්. සරලවම කියනවා නම්, අපි  xml එකක් හරහා interface එකක් design කරගත්තට පස්සේ, ඒක ක්‍රියාකරන්නේ කොහොමද කියන එක App එකට කියල දෙන්න java class එකක් භාවිතා කරනවා.

දැන් අපේ App එකේ,  interfaces දෙකක් තියෙනවා. එතකොට ඉහත කියපු විදියට, ඒ interfaces දෙක සඳහාම අපි java classes ලියන්න ඕනි වෙනවා. 

එහෙනම් අපි මුලින්ම අපේ  main.xml කියන interface එක සඳහා ලියලා තියෙන GreenScreenActivity.java කියන class එක ගැන කතා කරමු.


--> GreenScreenActivity.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class GreenScreenActivity extends Activity
{
    /** Called when the activity is first created. */
    private Button toWhite;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        setUpView();
    }

    private void setUpView(){
        toWhite = (Button)findViewById(R.id.to_white_button);
        toWhite.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(GreenScreenActivity.this, WhiteScreenActivity.class);
                startActivity(intent);
            }
        });
    }
}


දැන් ඔයාලට දැක ගන්න පුළුවන් වෙයි, මුලින්ම අපේ class එක ඇතුලත් වෙන package එක  com.flash.light කියලා පෙන්නලා දීල තියෙනවා. ඊට පස්සේ  import කියන syntax එක හරහා අපිට උවමනා කරන බාහිර  java classes අපේ java code එකට හඳුන්වලා දීලා තියෙනවා. 

මෙහිදී අපි, 

     android.app.Activity
     android.content.Intent
     android.os.Bundle
     android.view.View
     android.widget.Button

කියන Android SDK එක සතුව තියෙන java classes කිහිපයක්ම import කරගෙන තියෙන බව ඔයාලට දැක ගන්න පුළුවන් වෙයි.
මෙතෙක් අපි කතා කලේ ඕනිම java code එකක් කරද්දී අපි කරන සාමාන්‍ය දේවල් කිහිපයක්. හරි දැන් බලන්න අපි අපේ class එක පටන් ගෙන තියෙන විදිය.

    public class GreenScreenActivity extends Activity

එහි  extends Activity කියලා අමතර කොටසක් දැක ගන්න පුළුවන් වේවි. මේක java දන්න කෙනෙක් නම් කියාවි Activity කියන super class එකෙන් inherit එහෙමත් නැත්නම් extend කරල තමයි  GreenScreenActivity කියන class එක හදලා තියෙන්නේ කියලා. 


නොදන්න කෙනෙක්ට???

ඇත්තටම මෙතන කරලා තියෙන්නේ  Activity කියන Android SDK එක ඇතුලේ තියෙන class එකේ තියෙන හැකියාවන් අපේ  GreenScreenActivity කියල අපි ලියන class එකට උරුම කර දීමක්. අන්න ඒකට තමයි අපි මුලින්  android.app.Activity කියන එක import කරගත්තේ. එතකොට අපි දැන් දැනගත්තා, අපි .xml interface එකක් සඳහා java class එකක් ලියනවා නම්, අපි ඒ  class එක Activity කියන super class එකෙන් extend කරලා ගන්න ඕනි කියන එක.

ඔයාලගෙ class එකේ ඇතුලත onCreate හා  setUpView කියල methods දෙකක් දැකගන්න පුළුවන් වේවි. 

මේ setUpView කියන  method එක හරහා තමයි, අපේ  main.xml කියන interface එකේ තියෙන  Button, TextView වැනි Objects වලට පණක් දෙන්නේ. අපි විස්තර ඇතුව කියනවා නම්, ඔයාලට බලන්න පුළුවන් ඒ method එකේ තියෙන මුල්ම line එක,

   private Button toWhite; 
   toWhite = (Button)findViewById(R.id.to_white_button);

මෙතනදී කරලා තියෙන්නේ, අපේ java code එකට main.xml එකේ  to_white_button කියන id එකෙන් තියෙන  Button එක හදුන්වලා දෙන එකයි. මේ  findViewById කියන inbuilt android method එක භාවිතා කරලා තමයි .xml files වල තියෙන  Objects, java code එකට පෙන්වලා දෙන්නේ. බලන්නකෝ ඒ id එක පෙන්නලා දීලා තියෙන්නේ කොහොමද කියලා, 

   R.id.to_white_button

මේ  R කියලා කියන්නේ auto generated file එකක්, අපි ඒ R file එක ගැන ඉදිරි ලිපියක විස්තර ඇතිව කතා කරමු. ඊට පස්සේ id, ඒ කියන්නේ R file එකේ තියෙන id එකක්, මොකද්ද id එක, to_white_button කියන id එක. එහෙම තමයි, R.id.to_white_button කියන එක හැදිලා තියෙන්නේ. ඒ හරහා අපි අපේ Button එකට java Object එකක් හදා ගත්තා. දැන් ඉතින් සාමාන්‍ය java ම තමයි.

මීලඟ කොටස බලන්නකෝ...,  එම කොටසින් මම කරලා තියෙන්නේ OnClickListener එකක් set කරලයි තියෙන්නේ, එහෙමත් නැත්නම් අපේ Button එකේ Click event එකේදි මොකද වෙන්නේ කියලා define කරලා තියෙන එක. ඔයාලට ඇත්තටම කරන්න තියෙන්නේ,  <Object>.setOnClickListener කියලා type කරලා  Ctrl+Space කරන්න එතකොට ඉතිරි ටික ඔයා භාවිතා කරන IDE හදාලා දේවි.

බලන්නකො OnClickListener එක ඇතුලේ තියෙන public void onClick(View view) කියන function එක. ඇත්තටම එම  function එක ඇතුලේ තමයි අපේ Click event එකේ වෙන්න ඕනි දේවල් කියන්නේ. අපේ උදාහරනයේදී නම් අපි කරලා තියෙන්නේ මේ Button එක Click කලාම, අපේ ඊලඟ interface එක open කරන එක. බලන්නකෝ ඒක කොහොමද කරලා තියෙන්නේ කියලා.

මම Intent Object එකක් හදාගෙන තියෙනවා. ඒක හදනකොට, අපි දැනට ඉන්න interface එක GreenScreenActivity.this වශයෙනුත්, අපිට අලුතින් open වෙන්න ඕනි කරන interface එක WhiteScreenActivity.class වශයෙනුත් parameters විදියට pass කරලා තියෙනවා. ඊට පස්සේ අපි startActivity() කියන inbuilt method එකට අපේ Intent Object එක pass කරලා තියෙනවා. එතකොට මේක එක විදියක් තමයි අලුත් interface එකක් open කරන. මම මේ විස්තර කරපු lines දෙක තමයි පහත තියෙන්නේ.


    Intent intent = new Intent(GreenScreenActivity.this,
                                  WhiteScreenActivity.class);
    startActivity(intent);

හරි අපි දැන් අපේ interface එකේ Object setup method එක නැතිනම් setUpView කියන method එක ගැන තමයි ඔය කතා කලේ. ඊට පස්සේ බලමු onCreate method එක ගැන. මේ public void onCreate(Bundle savedInstanceState){} කියන method එක හරහා තමයි, මේ මොන layout එකද, නැතිනම් මොන .xml file එක සඳහා වූ java code එකද කියන එක හා එම layout එකේ වූ සියලුම Objects මූලික වශයෙන් සූදානම් කිරීම සිදුකරන්නේ. 

   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);

මෙම ඉහත lines දෙකෙන් අපේ මේ java code සඳහා වූ .xml file එක මොකද්ද කියන එක තමයි පෙන්වන්නේ. බලන්නකෝ එතනදීත් අපි කලින් method එකේ Button එක පෙන්වන්න කලා වගේම R file එක භාවිතා කරලා තියෙනවා. නමුත් පොඩ්ඩක් වෙනස් නේද? බලන්නකො වෙනස ඔයාලට හඳුනා ගන්න පුළුවන්ද කියලා. 

   R.layout.main

එහි තිබෙන්නේ ඉහත ආකාරයට. විස්තර කරනවා නම් R file එකේ තියෙන layout එකක්, මොකද්ද layout එක,  main කියන layout එක. ඉන් පසුව ඔයාලට බලන්න පුළුවන් අපි කලින් විස්තර කරපු setUpView() කියන method එක call කරලා තියෙනවා. දැන් අපේ එක class එකක් ගැන සම්පූර්ණයෙන් කතා කලා. ඔයාලම බලන්නකෝ ඊලඟ class එක නැතිනම් WhiteScreenActivity.java කියන class එකේ ඇතුලාන්තය ගැන. ඒක අපි කතා කරපු class එකට ගොඩාක් සමානයි. නමුත් පොඩි වෙනස්කම් කිහිපයක් තියෙනවා. බලන්නකො ඔයාලට ඒවා හඳුනා ගන්න පුළුවන්ද කියලා.

අපි මීලඟ ලිපියෙන් අපි Android කරන කොට දැන ගන්න ඕනි විශේෂ කරුණු කිහිපයක් ගැන කතා කරමු. 


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com
Read More

Monday, December 24, 2012

අදුරට එලියක්. Flash Light App - 3


 


       
      Android - App
      
        අදුරට එලියක්.

        Flash Light App - 3

    අපි මොනවද මේ code කලේ ???



මම හිතනවා, ඔයාල දැන් අපේ Android App එක run කරල බලන්න ඇති කියලා. නමුත් ඔයාල ගොඩක් දෙනෙක්, මම දාලා තිබුන code එක copy කරන්න ඇති, එහෙමත් නැත්තම් type කරලා Android එක 

හදන්න ඇති. ඉතින් අපි අද බලමු, අපි type කලේ මොනවාද? ඒවගෙ තේරුම මොකද්ද කියල.

මොනවද මේ resource files කියලා කියන්නේ?


මම කලින් ලිපියක පැහැදිලි කලා වගේ මේ resource files හරහා තමයි,  අපිට අපේ  App එකට ඕනි කරන, සම්පත් නැති නම් ප්‍රභවයන් වෙනස් කල හැකි පරිදි (වෙනස් කරනවා යැයි අදහස් කලේ, අපේ java code එකේ වෙනසක් නොකර වෙනස් කල හැකි පරිදි) ගබඩා කර තැබීමට උදවු වෙන කේතයන් කොටසක්. 

අපි අපේ මේ පොඩි App එකෙත්, එවන් වූ  resources වර්ග දෙකක් භාවිතා කරනවා. ඒ තමයි  strings හා  colors කියන ඒවා.

මම  strings.xml එක ගැන කියන්නම්.

-- > strings.xml 


මේවා  .xml tags හරහා තමයි පෙන්නලා දීලා තියෙන්නේ... මුල්ම පේලියේ තියෙන්නෙ,

      <?xml version="1.0" encoding="utf-8"?>

මේක .xml එකක්,  එම  xml version එක හා  encoding type එක මොකද්ද කියන එක. ඊට පස්සේ ඔයාලට බලන්න පුළුවන්  <resources> කියල  tag එකක්.  එම  tag එක හරහා අපි  configure කරන්න යන  resources මොනවාද කියලා අපි  xml එකට කියන්න යන්නේ. 

අපි දැන් කතා කරන්නේ, අපේ  strings.xml එක ගැන. ඒ කියන්නේ, මේකේ තියෙන්නේ, අපි  App එකේ භාවිතා කරන,  strings මොනවද කියන එක ගැන.

     <string name="to_white">To White</string>
  

ඔන්න අපේ එක  string resource එකක්.  <string> කියන tag එක යටතේ අපි "To White" කියන වාක්‍ය ඛන්ඩය අපි resource කරලා තියෙනවා. දැන් අපිට අපේ  App එකේ  "To White" කියන එක පෙන්න ගන්න ඕනි නම්, අපි කරන්නෙ අදාල  string resource එකේ, name එක භාවිතා කරන එක.මෙහිදී නම්, to_white කියන එක. මම මේ ගත්ත  resource එක භාවිතා කරපු තැනක් මෙතනම පෙන්වන්නම්.


   android:text="@string/to_white"


මේක තියෙන්නේ, main.xml එකේ, <Button> කියන tag එක ඇතුලේ. ඇත්තෙන්ම මෙතනදි වෙලා තියෙන්නෙ, අදාල  Button එකේ මට පෙන්නන්න ඔනේ "To White" කියන කොටස. 
මම ඒක මගේ  resources හරහා කරලා තියෙනවා.එතකොට මෙහි තියෙන අනිත්  string resources ඒ වගේම තමයි.



මීලගට තියෙන්නේ colors.xml

-- > color.xml
මෙහිදී මම  resource කරගෙන තියෙන්නේ මට අවශ්‍ය කරන පාටවල්.  එම  .xml එකෙත්, පෙර කී කොටස් එසේම තියෙනවා වගේම, එහි වෙනසකට තියෙන්නේ,  <color> කියන  tag එක.

       <color name="green">#00FF00</color>


එහි අපිට නොතේරෙන කොටසක් තියෙනවා. ඒක තමයි  #00FF00 කියන එක. මේ තියෙන්නේ,  අපි හැමෝම දන්න  html color code එකක්. ඉතින් ඔය වගේ color code මට මගේ  code එකේ දාල කැත
කර ගන්න බැරි නිසා තමයි මම ඒවත් මේ විදියට  resource කර ගත්තේ.

මොකද මට පාටවල් ඕනි කරන වෙලාවට, මට මගේ තියන  resources පහත ආකාරයට භාවිතා කරන්න පුළුවන් නිසා.

       android:background="@color/green"


මේක තියෙන්නෙ,  main.xml කියන  xml එකේ  <linearlayout> කියන tag එක ඇතුලේ. ඒ හරහා තමයි මම, මගේ  interface එක කොල පාට කරගෙන තියෙන්නේ. 




මොනවද මේ interface files කියලා කියන්නේ?

දැන් අපි interface ගැන බලමු එහෙනම්. අපේ  code එකේ  interfaces දෙකක් තියෙනවානේ...

මුලින්ම  main.xml බලමු.

-- > main.xml

දැන් ඔයාලට බලන්න පුළුවන්, ඔයාලට පෙනෙන  interface හා  ඒක හදා ගන්න අපි යොදා ගත්ත  xml එක.


බලන්නකො, මුලින්ම main.xml එකේ තියෙනව, <linearlayout> කියල tag එකක්. Android වල හැම interface එකක් සඳහාම,  layout එකක් තියෙනවා. අපි මෙහි යොදාගෙන තියෙන්නේ linearlayout එකක්. 

මේ layout එකට අමතරව, තවත් layout කිහිපයක්ම තියෙනවා. අපි ඒව ගැන ඉදිරි උදාහරන වලදි බලමු. ඒ <linearlayout> tag එක ඇතුලෙ, තව ගොඩක් දේවල් තියෙනව ඔයාලට දකින්න පුළුවන්. ඒවට කියන්නෙ  layout එකේ තියෙන attributes කියලා. ඒ attributes වලින් තමයි, අපේ layout එක මොනවගේ එකක් වෙන්න ඕනිද කියල අපි කියලා දෙන්නෙ...


android:orientation="vertical"      --> අපගේ layout එක සිරස් එකක්ද, තිරස් එකක්ද යන වග (මෙහි එය සිරස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"  --> layout එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:layout_height="fill_parent" --> layout එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:background="@color/green"   --> layout එකේ පසුබිම් වර්ණය

android:gravity="center"            --> layout එකේ ඇති  Objects සඳහා බලපාන මූලික ස්ථාන ගත වීම (මෙහි එය මැද යන බව දක්වා ඇත)




ඊට පස්සේ ඔයාලට බලා ගන්න පුළුවන්,  <TextView> කියලා tag එකක්. මෙම  TextView හරහා තමයි, අපිට ඕනි කරන වැකි, අපගේ  interface එක මත පෙන්වන්නේ.

එහිද ඔයාලට දකින්න පුළුවන්,  attributes කිහිපයක්.

android:layout_height="wrap_content"        --> TextView එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය කොටස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"             --> TextView එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:text="@string/instruction_to_white"  --> TextView එකේ දර්ශනය විය යුතු වැකිය. (ඔයාලට බලන්න පුළුවන් මෙතනදි, අපි කලින් කතා කරපු  string resource එකක් භාවිත කරල තියෙනව කියලා)

android:gravity="center"                                     --> TextView එකේ ඇති  Objects සඳහා බලපාන මූලික ස්ථාන ගත වීම (මෙහි එය මැද යන බව දක්වා ඇත)

android:textColor="@color/black"                 --> TextView එකේ ඇති අකුරු සඳහා යොදාගත යුතු වර්ණය. (මෙහිදී අපි color resource එකක් භාවිතා කරල තියෙනවා)



ඉන් පසුව තියෙන්නේ, <Button> කියලා tag එකක්. ඒකනම් ඔයාල කවුරුත් දන්න Button එකක්. අපි බලමු, ඒකෙ තියෙන attributes මොනවද කියලා.


android:id="@+id/to_green_button"           --> Button එක සඳහා අපි යොදා ගැනීමට බලාපොරොත්තු වෙන, id එක මොකද්ද යන වග. මේ id හරහා තමයි, අපි ලියන java code එකේදි, මේ  Button එක හදුනා ගන්නේ. එය ඕනෑම  Object සඳහා යොදා ගන්න පුළුවන්. ඒ වගේම ඕනිම  Object එකක් අපි java code එකේදි හදුනා ගන්නේ මේ id එක හරහායි.

android:layout_height="wrap_content"  --> Button එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය කොටස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"       --> Button එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:text="@string/to_green"              --> Button එකේ දර්ශනය විය යුතු වැකිය.



අපි දැන් එක interface එකක තියෙන සියලුම  Objects මොනවාද, ඒවගේ attributes මොනවාද කියන එක කතා කලා. ඉදිරියේදි අපි භාවිතා කරන උදාහරනත් සමඟ අලුත් Objects ගැන කතා කරමු.

ඒවගේම ඔයාලත් xml එකේ දාන්න පුළුවන් tag හරහා අපිට භාවිතා කරන්න පුළුවන් වෙනත්  Objects අත්හදා බලන්න. අලුත් xml file එකක  <  මෙන්න මේ සලකුන යොදලා  Ctrl + Space ගහපුහාම, ඕනි තරම් අලුත් tags ඔයාලට බලා ගන්න පුළුවන් වේවි.


ඒවගේම තවත් දෙයක් කියන්න ඕනි. බලන්න අපි ඉහත භාවිතා කල සෑම Objects එකක් සඳහාම  android:layout_height හා  android:layout_width කියන attributes භාවිතා කරලා තියෙනවා නේද?

මෙම  attributes හරහා තමයි, අපිට interface එකේ දර්ශනය වෙන, ඕනෙම Objects එකක, සිරස් හා තිරස් ස්වභාවය ගැන විස්තර කරන්නේ. මෙම attributes නැතිනම්, ඇත්තෙන්ම Object එකක් සම්පූර්ණ නෑ.


අපගේ අනිත් interface එකත්, අපි දැන් කතා කරපු interface එකට බොහෝ දුරට සමානයි. එහි පවතින්නේ, ඉතා කුඩා වෙනස් කම් කිහිපයක් පමනයි. ඔයාලට පුළුවන් දැන් ඒ වෙනස් කම් මොනවාද කියලා හොයලා බලන්න.

එහෙනම් අපි මීළඟ ලිපියෙන් අපේ java code එක ගැන කතා කරමු.


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 


Read More