Education KCNBRAND.COM Blog

Android : How to create custom dialog

โดยปกติ Android จะมี AlertDialog ให้เราเรียกใช้ได้เลย ต้องการกำหนดข้อความอะไรก็สามาถเรียกฟังก์ชัน .setMessage(…) ได้ กำหนดให้มีปุ่มกดได้ก็เรียกฟังก์ชัน .setPositiveButton(…) ก็มีปุ่มพร้อมกดให้เลย แต่ถ้าเราต้องการเพิ่มเติมรูปภาพ หรือออปชันอื่นๆ ก็อาจทำไม่ได้ หรือทำได้แต่ไม่โดนใจเรา ซึ่งเราก็มีอีกทางเลือกคือสร้าง Custom Dialog ขึ้นมาเอง กำหนดหน้าตาของ Dialog layout เองทั้งหมด แบบนี้ก็จะได้ตามที่เราต้องการเลย เช่น สมมติว่าต้องการเพิ่มรูปภาพให้กดในรูปได้ (ImageButton) หรือต้องการเพิ่มข้อความให้กดแล้วไปเว็บต่อได้ (TextView) ก็ทำได้เลย โดยมีขั้นตอนการสร้าง Custom Dialog ดังนี้Create...

Android : How to handling Orientation Changed

ปัจจุบันสมาร์ทโฟนสามารถใช้งานได้ทั้งแบบแนวตั้ง (Portrait) และแนวนอน (Landscape) ซึ่งสมาร์ทโฟนมีฟังก์ชันการหมุนหน้าจออัตโนมัติ เพราะฉะนั้นถ้าเราออกแบบแอปปลิเคชันแบบแนวตั้งอย่างเดียว เมื่อผู้ใช้งานหมุนหน้าจอเป็นแนวนอน Layout ของแอปฯก็จะเพี้ยนจนบางครั้งอาจใช้งานไม่ได้ เช่น ปุ่มถูกย่อจนเล็กเกินไป เป็นต้น วันนี้เราจะมาเรียนรู้วิธีการจัดการ การหมุนหน้าจอของผู้ใช้งานกัน โดย Android ได้เตรียม Call back funtion ให้เรียบร้อย โดยมีขั้นตอนดังนี้ แก้ไข AndroidManifest.xml สำหรับ Activity ที่เราต้องการ โดยเพิ่มบรรทัดนี้ <activity android:name=”.MyActivity”        ...

Android : How to set AppCompat Toolbar back button

วันนี้เราจะมาพูดถึงการสร้างปุ่ม Back บน Toolbar กัน ปกติมือถือแอนดรอยด์จะมีปุ่มย้อนกลับให้อยู่แล้ว แต่บางยี่ห้ออาจไม่ได้แยกปุ่มย้อนกลับมาให้ใช้ง่ายๆ เราก็ควรรองรับการย้อนกลับในแอปปลิเคชันด้วยก็ดี สำหรับแอนดรอยด์เวอร์ชันใหม่ๆ เราจะเปลี่ยนมาใช้ AppcompatActivity กันแล้ว เพราะฉะนั้นเราจะมาสร้าง Toolbar ด้วย androidx.appcompat.widget.Toolbar เริ่มต้นดังนี้ in Java Code protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar =...

Android : How to check File Exists in MediaStore via URI

อีกวิธีการในการตรวจสอบไฟล์หากว่าเรามีไฟล์ในรูปแบบ URI (content://…) เราสามารถใช้ URI มาค้นหาว่ามีไฟล์ตาม URI นี้จริงหรือไม่ โดยในตัวอย่างเป็นฟังก์ชันที่ส่งค่า content uri เข้ามาแล้วตอบกลับด้วยผลลัพธ์ตรรกะ (Boolean) ดังนี้ private boolean chkImgUri(Uri in_imgUri) { boolean res; ContentResolver cr = getContentResolver(); String[] projection = {MediaStore.MediaColumns.DATA}; Cursor cur = cr.query(Uri.parse(in_imgUri.toString()), projection,...

Android : How to query file name from MediaStore

MediaStore เป็นพื้นที่จัดเก็บข้อมูลมัลติมีเดีย เช่น รูปภาพ เสียง วิดิโอ เป็นต้น โดยจัดเก็บในรูปแบบ content URI (content://… ) ซึ่งจะไม่ได้อยู่ในชื่อไฟล์แบบทั่วๆไป หากเราต้องการจะค้นหาไฟล์ด้วยการใช้ MedisStore Query เราสามารถทำได้ดังนี้ ในตัวอย่างสร้างฟังก์ชันการค้นหา โดยการใส่ชื่อไฟล์ลงไป แล้วตอบกลับด้วยผลลัพธ์เป็นตรรกะ (Boolean) ดังนี้ private boolean chkFilefromMediaStore(String in_filename) { String path, filename; try (Cursor cursor =...

Android : how to set Text in TabLayout items by Programming

การเปลี่ยนชื่อ Tab items ที่สร้างอยู่ภายใน TabLayout แบบพื้นฐานทั่วไปคือ ไปกำหนดใน XML layout ที่สร้างไว้ ดังตัวอย่าง <com.google.android.material.tabs.TabLayout android:id=”@+id/tabs_main” android:layout_width=”match_parent” android:layout_height=”wrap_content” app:tabIndicatorColor=”@color/white” app:tabIndicatorHeight=”4dp”> <com.google.android.material.tabs.TabItem android:id=”@+id/tabItem” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:text=”tab-name1″ /> <com.google.android.material.tabs.TabItem android:id=”@+id/tabItem2″ android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:text=”tab-name2″ /> <com.google.android.material.tabs.TabItem android:id=”@+id/tabItem3″ android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:text=”tab-name3″...