นักผจญโค้ด (CODE HUNTER)

แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ android แสดงบทความทั้งหมด

วิธีการส่งข้อมูลข้าม Activity ใน Android


          การส่งข้อมูลจาก  Activity หนึ่งไปยัง Activity หนึ่ง  ใน Android สามารถทำได้โดยการเรียกใช้คลาสที่ชื่อว่า Intent  โดยที่รูปแบบการส่งที่เป็น key กับ value 



เริ่มต้นด้วยการสร้างโปรเจคตัวอย่างขึ้นมาชื่อว่า IntentExample
ในตัวโปรเจคจะประกอบไปด้วย Activity ทั้งหมดสองตัวคือ MainActivity จะทำหน้าที่ส่งข้อมูล
และ ShowActivity จะแสดงข้อมูลที่รับเข้ามา
ภายใน MainActivity จะประกอบไปด้วย EditText ที่ใช้สำหรับกรอกข้อมูลที่ต้องการส่ง โดยตั้ง Id ว่า message_edt  และมีปุ่มสำหรับการกดส่งข้อมูลที่มีชื่อว่า send_btn


จากนั้นทำการ setListener ให้กับปุ่ม send และทำการเขียนโดคเพื่อส่งข้อมูล



ShowActivity จะประกอบไปด้วย TextView สำหรับเเสดงข้อมูลที่รับเข้ามา โดยมี Id เป็น result_tv

จากนั้นในหน้า ShowActivity จำทำการรับข้อมูลผ่าน intent โดยเขียนโคดดังนี้



Share:

วิธีตั้งให้ Android Studio ใน Window เปิดหน้า Welcome Screen


          โดยปกติแล้ว Android Studio เวอร์ชั่น Window เมื่อเคยเปิดโปรเจคใดโปรเจคหนึ่ง แล้วออกโดยไม่ได้ใช้เมนู Close Project เมื่อเปิดโปรแกรมอีกครั้ง ตัวโปรแกรมจะทำการเปิดโปรเจคล่าสุดให้เสมอ ซึ่งต่างจาก Android Studio ใน Mac OS ที่จะเปิดหน้า Welcome Screen ซึ่งถ้าอยากให้ Android Studio ใน Window เปิดหน้าจอ Welcome Screen เป็น Default ก็สามารถทำได้เช่นกัน


กรณีที่อยู่ในหน้า Welcome Screen ให้เลือกที่เมนู Config > Settings


หรือถ้าเปิดโปรเจคอยู่ สามารถทำได้ที่เมนู File > Settings


เมื่อเปิดหน้าต่าง Setting for New Projects ขึ้นมาแล้ว  เมนูด้านซ้ายเลือกที่เมนู System Settings



เมนูด้านขวาของ System Settings หมวด Startup/Shutdown  ค่าเริ่มต้น Reopen last project on startup สถานะจะถูกเลือกไว้  


คลิกเพื่อทำการ uncheck 



จากนั้นเมื่อลองปิดโปรเจคแล้วเปิดขึ้นมาใหม่ ตัวโปรแกรมจะเปิดหน้า Welcome Screen ให้เสมอ

Share:

Android กับวิธีการทำ Line Login


เข้าไปสมัครสมาชิค และทำการเข้าสู่ระบบที่ https://developers.line.biz/en/



เมื่อทำการล็อคอินเรียบร้อยแล้ว ให้เลือกที่เมนู LINE Login








Channel Type  : เลือก LINE Login
Provider : Create a new  provider
Provider Name : ตั้งชื่อตามที่ต้องการ
Channel Icon : จะเลือกใส่ตอนนี้เลย หรือมาใส่ทีหลังก็ได้
Channel Name : ตั้งชื่อ Channel
Channel Description : ใส่ description
Email Address : ใส่ email
Privacy policy URL เป็น optional จะเลือกใส่หรือไม่ก็ได้
Term of use URL เป็น optional จะเลือกใส่หรือไม่ก็ได้


หลังจากสร้างสำเร็จ ในเมนูด้านซ้ายจะปรากฎรายชื่อ  Channel ที่เราสร้างขึ้นมา  ด้านขวาจะเป็นรายละเอียดของ Channel 

เพิ่ม LINE SDK เข้าไปในไฟล์ build.gradle


กำหนด compileOptions เป็น java 8
ไฟล์ Android Manifest.xml เพิ่ม permission Internet

ทำการเชื่อมให้แอพฯ กับ channel ให้รู้จักกัน Linking your app to your channel

นำ package name ของแอพฯ ที่ได้สร้างไว้ มาใส่ในช่อง Android package names


เพิ่มคำสั่งด้านล่าง เพื่อสร้างปุ่มสำหรับใช้ login line ในที่นี้จะใช้ปุ่ม default
ทำการคัดลอก Channel Id ที่ได้สร้างไว้มาใส่ที่คำสั่ง .setChannelId(...)

ในกรณีที่ใช้ Fragment ให้เพิ่ีมคำสั่งด้านล่างนี้
Share:

Implement Android Notification Listener using NotificationListenerService(ดักจับและตรวจสอบ notification ด้วย NotificationListenerService)



     ในการณีที่เราอยากตรวจสอบ Notifiction ว่าเป็นของแอพฯ ไหน เราสามารถทำได้โดยการสืบทอดคลาส NotificationListenerService

     เริ่มต้นด้วยการสร้าง Class ขึ้นมาใหม่ชื่อว่า MyNotificationListener และทำการสืบทอด NotificationListenerService และทำการ Override method สองตัว ได้แก่

- onNotificationPosted เมธอดถูกเรียกเมื่อมี notification เข้ามา เราสามารถตรวจสอบค่าได้ที่นี่
- onNotificationRemoved เมธอดถูกเรียกเมื่อ notification ถูกเคลียร์


     ทำการเพิ่มค่าเหล่านี้ที่ไฟล์ Manifest.xml

     เราต้องทำการ allow permission ตัว Notification access โดยเข้าไปที่ Settings->Security-Notification access

 
      

หรือจะเช็คด้วยโคด


อ่านเพิ่มเติมได้ที่  NotificationListenerService
Share:

how to remove left(start) margin from actionbar's custom layout (ลบช่องว่างระหว่าง title และ ปุ่ม home ของ actionbar)


          Toolbar กำหนดค่า default ของ contentInsetStart ไว้ที่ 16dp ทำให้เวลาเราทำ custom toolbar จะมีช่องว่างระหว่าง navigation icon และ title
           ใน Material Design spec มี attribute ตัวหนึ่งที่ชื่อว่า contentInsetStartWithNavigation  และกำหนดค่าเริ่มต้นไว้ที่ 16dp เราสามารถกำหนดค่าของ contentInsetStartWithNavigation  ให้เป็น 0dp ได้ในกรณีที่เรามีกำหนด navigation icon ไว้



ก่อนกำหนดค่าให้ใหม่กับ contentInsetStartWithNavigation

หลังกำหนดค่าให้ใหม่กับ contentInsetStartWithNavigation  เป็น 0dp
Share:

how to chage icon home button

         

เราสามารถเปลี่ยน Icon ของปุ่ม Button Home ได้ง่ายๆ
โดยการกำหนดรูปที่เราต้องการให้แสดงผ่านคำสั่ง setHomeAsUpIndicator โดยเราสามารถส่ง param ได้ 2 แบบคือ 
          แบบแรก คือ การส่ง Drawable 
          แบบที่สอง คือ การส่ง Id ของ drawable

ตัวอย่างการเรียกใช้แบบแรก



ตัวอย่างการเรียกใช้แบบที่สอง



Share:

มาเปลี่ยน font ของ TextView ในแอพฯ กันเถอะ

       

 ในบทความนี้เราจะมาทำการเปลี่ยนฟ้อนของ TextView ในแอพฯ ให้เป็นฟ้อนที่เราอยากได้กัน ซึ่งในตัวอย่างเราจะทำการเปลี่ยนฟ้อนของ "Hello World!"

คลิกขวาที่โฟลเดอร์ res เลือก New จากนั้นเลือก Android resource directory

ในชื่อง Resource Type เลือกเป็น font

จากนั้นระบบจะทำการสร้างโฟลเดอร์ font ให้เรา ให้เรานำ font ที่เตรียมไว้แล้วมาไว้ที่โฟลเดอร์ font ที่พึ่งสร้าง

จากนั้นไปที่โฟลเดอร์ values->style ไฟล์ style.xml ให้เพิ่ม
<item name="android:fontFamily">@font/dosis_regular</item>

ลองรันแอพฯขึ้นมาใหม่ คำว่า Hello World! เปลี่ยนเป็น font ที่เราอยากได้เรียบร้อย

ดูโคดตัวอย่างได้ที่ https://github.com/twbkg/AndroidFonts.git
Share:

วิธีหา SHA1 บน Android Studio

          ในบทความนี้เราจะหา SHA1 โดยที่ไม่ต้องสั่งรันผ่าน Command ดูที่โปรเจคจากนั้นมองTab Gradle จะอยู่ฝั่งขวามือของหน้าจอ จากนั้นเข้าไปที่ Tasks->android->signingReport

จากนั้นคลิ๊กขวาเลือก Run 'ชื่อโปรเจค' หรือจะกดปุ่ม Ctrl+Shift+F10

จากนั้นมาที่แถบด้านล่าง เลือก แถบ Messages 

คลิ๊กที่ไอคอน Show Console Output



Share:

การทำ Load more ใน RecyclerView

          ในทุกวันนี้การแสดงผลข้อมูลในรูปแบบลำดับ คงหนีไม่พ้นเครื่องมือที่ชื่อว่า Recycler View ซึ่งเจ้าเครื่องมือนี้มีความสามารถที่หลากหลายเอามากๆ  ในบทความนี้เราจะมาลองทำ load more ใน Recycler view กัน
          โจทย์ในหัวข้อนี้คือ  เราจะแสดงข้อความเป็นลิส  การโหลดข้อมูลแต่ละครั้งจะได้ข้อมูลรอบละ 30 รายการ ในแต่ละรายการจะแสดงข้อความว่า "position ตามด้วยเลขลำดับ"
          เริ่มด้วยการเตรียมข้อมูลที่จะแสดง ด้วยการสร้างฟังก์ชั่นสำหรับการโหลดข้อมูลออกมาครั้งละ 30 รายการ 


ประกาศตัวแปรที่จะใช้งาน


สร้างฟังก์ชั่นที่ใช้สำหรับการสร้างข้อมูล โดยปล่อยข้อมูลครั้งละ 30 รายการ


จากนั้น Config Recycler View

add listener ให้กับ recycler view


แลทำการสร้าง adapter ดังนี้


ดูโคดตัวอย่างได้ที่
https://github.com/twbkg/RecyclerViewSample.git

Share:

ตรวจสอบคุณภาพการเขียนโคดด้วย lint


          ในบทความนี้เรามาทดลองใช้ เครื่องมือที่ชื่อว่า lint ในการทดสอบโคดที่เราได้เขียนไปแล้วว่ามีประสิทธิ์ภาพแค่ไหน ซึ่งความสามารถของ lint มีความสามารถค่อนข้างหลากหลายกันเลยทีเดียว

          เริ่มด้วยการไปที่ gradle ของโมดูล app จากนั้นเพิ่มคำสั่งด้านล่างนี้ไว้ภายในส่วนของ android
          จากนั้นเปิดเมนู Gradle ซึ่งเจ้าเครื่องมือที่ว่าจะอยุ่ในโมดูล app -> verification -> lint (สามารถดูรูปด้านล่างได้)


ถ้ายังหาไม่เจอสามารถดูภาพนี้ประกอบได้

ให้เราคลิกขวาที่ lint แล้วเลือกเมนู Run '....project name.... [lint] หรือกดดับเบิลคลิกที่ lint หรือจะกดเมนูลัดโดยการกดที่ Ctrl+Shift+F10 ก็ได้

เมื่อเราสั่งรันแล้ว ให้รอจนกว่าโปรแกรมจะคอมไพลเสร็จ ซึ่งอาจจะช้าหรือเร็วขึ้นอยู่กับขนาดของโปรเจคและเสปกเครื่องของผู้ใช้งานเอง


เมื่อโปรแกรมทำการคอมไพล์เสร็จแล้ว ให้เลือกรูปแบบมุมมองมาเป็น project  จากนั้นไปที่
app -> build -> outputs จะพบกับไฟล์นามสกุล .html ที่ชื่อว่า lint-resources-debug.html



เข้าไปที่พาทที่อยู่ของไฟล์ หรือจะใช้วิธีลัดโดยการคลิกขวาที่ชื่อไฟล์ แล้วเลือก Show In Explorer


จะพบกับข้อมูลการรายงานที่ lint ตรวจสอบให้เรา จะเเบ่งออกเป็นหมวดๆ ไป เช่น เรื่องที่เกี่ยวกับ Security, Performance ฯลฯ


Share:

การติดตั้งการใช้งาน Genymotion แบบละเอียด


          สำหรับนักพัฒนามือใหม่ที่พัฒนาแอพฯ ขึ้นมาสักตัวเเล้วอยากทดสอบว่า แอพที่เราได้พัฒนาขึ้นนั้นมีการแสดงผลในหน้าจอที่แตกต่างกันยังไงบ้าง ซึ่งต้องใช้เครื่องใครการทดสอบค่อนข้างเยอะมากๆ 
ซึ่งเป็นไปไม่ได้เลยทีนักพัฒนาคนหนึ่งจะมีเครื่องทุกรุ่นมาใช้ในการทดสอบ  แต่ก็ไม่ใช่ว่าไม่มีทางที่เราจะไม่สามารถทดสอบได้ ในบทความนี้ขอแนะนำเครื่องมือที่ใช้ในการทดสอบแอพของเราที่ชื่อว่า Genymotion ซึ่งสามารถแก้ปัญหาในเรื่องนี้ได้ดีเลยทีเดียว  สามารถเข้าไปดาวโหลดได้ที่ https://www.genymotion.com/ 



เริ่มแรกเราจำเป็นต้องเป็นสมาชิกของทาง Genymotion ก่อน โดยเข้าไปที่เมนู Sign in



คลิกที่ Create an account เพื่อทำการสมัครสมาชิก หรือถ้าสมัครสมาชิคแล้วก็ทำการล็อกอินให้เรียบร้อย

จากนั้นเราจะทำการดาวโหลดเราต้องไปที่เมนู resources


เลือกที่เมนู Fun Zone



คลิกที่ปุ่ม Dowload Genymotion Personal Edition


จะมีสองแบบให้เราเลือกโหลด ตัวแรกจะมาพร้อมกับ VirtualBox ซึ่งจะมีขนาดใหญ่กว่าแบบที่สอง ถ้าผู้ใช้งานมีได้ติดตั้ง VirtualBox ไว้ในเครื่องเเล้วก็สามารถเลือกโหลดแบบที่สองซึ่งจะได้เฉพาะ Genymotion เท่านั้น


รอ......................



หลังจากโหลดเสร็จเสร็จแล้วจะได้ไฟล์ นามสกุล .exe (สำหรับ windown)

เริ่มการติดตั้งโดยคลิกที่ไอคอนของ Genymotion จากนั้นกด ok


ติ๊กเครื่องหมายถูก ถ้าต้องการเพิ่ม shortcut ไปที่หน้า desktop แต่ถ้าไม่ต้องการก็สามารถยกเลิกได้



คลิกที่ install เพื่อทำการติดตั้ง



รอ.... จนกว่าจะเสร็จ


กดที่ปุ่ม finish



หลังจากที่ติดตั้งเสร็จแล้ว เข้าโปรแกรมเพื่อทำการโหลดตัวจำลองต่างๆ



กดที่เครื่องหมาย + หรือ Add เพื่อทำการเพิ่มตัวจำลอง device ของเรา


จากนั้นทำการล็อกอินก่อนจึงสามารถโหลดได้ โดยกดที่ปุ่ม  Sign in


กรอกข้อมูล username และ password ให้เรียบร้อย


เลือกอุปกรณ์ที่เราต้องการ และกดปุ่ม next



โปรแกรมจะแสดงรายละเอียดของอุปกรณ์ที่เราได้เลือก กด next เพื่อเริ่มการดาวโหลด



รอ.....


หลังจากโหลดเสร็จเรียบร้อย กดปุ่ม finish


หลังจากโหลดเสร็จเรียบร้อย มาดูที่หน้าจอหลัก จะพบกับตัวที่เราได้ทำการติดตั้งไปเมื่อสักครู่


ต่อไปเราจะทำการเรียกตัวที่เราได้ดาวโหลดไว้มาใช้งานกัน โดยให้เลือกที่อุปกรณ์ที่เราต้องการจะรัน จากนั้นกดที่ปุ่ม start




เราได้ตัวจำลองอุปกรณ์มือถือมาไว้ทดสอบแอพฯของเราเรียบร้อย



Share:

Recent Posts

Popular Posts

About Me

About Me