- การใช้งาน Tab แบบปัดซ้าย-ขวาได้
- การแสดง Splash Screen ที่ถูกต้องด้วย LayerList
- สร้างโปรเจ็กส์ใหม่แบบ Tabbed Activity (Action Bar with View Pager)
- การสร้าง Custom Toolbar
- การสร้าง Navigation Drawer
- การจัดการ ListView Item (search, add, edit, remove)
- การสร้าง Custom ListView แบบ Multiple Layout
- การสร้าง RecyclerView เบื้องต้น
- การสร้าง RecyclerView แบบ Multiple Layout
- การสร้างภาพ Drawable กับ RecyclerView
- การใช้ CardView กับ RecyclerView
- การเข้าถึงรายการใน RecyclerView
- Job-Scheduling
- การใช้ AsyncTask
- การสร้าง AutoComplete
และ SQL , Network
material.io – Bottom navigation
KT: Scroll your Bottom Navigation View away with 10 lines of code
Android: การส่ง key (simulate key press)
การใช้ไลบรารี่ Material Calendar View เพื่อแสดงปฏิทิน
Material Components & Link ดีๆ
ยุคสมัยแห่ง X กูเกิลเปิดตัว AndroidX ชื่อใหม่ของ Android Support Library
ไว้ค้นหา code ที่ commit เข้า core ของ android
https://android.googlesource.com/platform/frameworks
แอพนับเลขขึ้น-ลง (PS – Android – แอพ Counter)
การสร้าง SegmentView ด้วย Drawable (ใช้ RadioButton วาด)
การสร้าง AutoComplete
การสร้าง Clearable EditText
ปรับแต่ง Spinner ด้วย TextView
การใช้ Custom Font
การสร้าง MessageBox โดยใช้ Popup Window
Old
รวมลิงค์สำหรับ Android Developer
Android Emulator : Keyboard Commands
ส่งอีเมล์
Popup Menu
Spinner
Auto-complete Suggestions
How to change target emulator in Android Studio?
คำสั่ง ADB
เจ๋ง akexorcist.com/
เจ๋ง [Android Dev Tips] ปัญหา Translucent Window บน Android 8.0 Oreo ที่นักพัฒนาไม่ควรมองข้าม ทำเป็น Fragment น่าจะดี
ทั่วไป
Kotlin
พื้นฐาน
1. สร้างโปรเจ็กส์ใหม่
No | Java | Kotlin | Project |
---|---|---|---|
1 | Java | สร้างโปรเจ็กส์ใหม่แบบ Empty Activity | |
2 | Java | สร้างโปรเจ็กส์ใหม่แบบ Bottom Navigation Activity | |
3 | Java | สร้างโปรเจ็กส์ใหม่แบบ Basic Activity | |
4 | Java | สร้างโปรเจ็กส์ใหม่แบบ Tabbed Activity (Action Bar with View Pager) |
2. การจัดการอีเวนต์ (Event Handling)
No | Java | Kotlin | Project | |
---|---|---|---|---|
1 | Java | Kotlin | การจัดการอีเวนต์ ด้วยการ implements View.OnClickListener |
|
2 | Java | Kotlin | การจัดการอีเวนต์ ด้วยการสร้าง Class ขึ้นมาใหม่ | |
3 | Java | Kotlin | การจัดการอีเวนต์ ด้วยการสร้าง Anonymous Class vs lambda | |
3 | Java | การจัดการอีเวนต์ ด้วยการสร้าง Method ขึ้นมา | ||
4 | —– | Kotlin | *** การจัดการอีเวนต์ แบบไม่ต้องสร้างตัวแปรก่อน | |
5 | Java | Kotlin | การจัดการอีเวนต์ โดยใช้ android:onClick |
|
6 | Java | Kotlin | การจัดการ View ด้วย view.getId() |
3. Start another activity
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Java | Kotlin | การเรียกใช้งานแอคทิวิตี้อื่น | 1 |
2 | Java | Kotlin | การเรียกใช้งานแอคทิวิตี้อื่นพร้อมส่งข้อมูลไปให้ | 1 |
3 | Java | การส่งข้อมูลกลับมาให้แอคทิวิตี้ต้นทาง | ||
4 | Java | Kotlin | การเรียกใช้งานแอคทิวิตี้อื่น และส่งข้อมูลกลับมา | J2 |
Launcher Activity and Splash Screen
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Java | การตั้งค่า Launcher Activity | ||
2 | Java | การสร้าง Splash Screen | ||
3 | Java | การแสดง Splash Screen ที่ถูกต้องด้วย LayerList |
4. Toast
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Java | Toast แบบปรับแต่งได้ |
1 | |
2 | Java | การแสดง Toast ให้นานขึ้น |
||
3 | Java | การปรับแต่ง Toast ด้วยการสร้างคลาสแยก |
||
4 | Java | Kotlin | การกำหนดตำแหน่งแสดง Toast |
1 |
5 | —– | Kotlin | การใช้ไลบรารี่ anko เพื่อเรียกใช้ toast |
5. Simple UI
No | Java | Kotlin | Project | Link | API |
---|---|---|---|---|---|
1 | Java | Kotlin | สร้าง TextView แบบ programmatically |
KT | |
2 | Java | Kotlin | กำหนดให้ตัวอักษรใน TextView – Justify Text |
KT | 26 |
3 | Java | Kotlin | สร้าง Button แบบ programmatically |
KT | |
4 | Java | Kotlin | กำหนด All Caps ให้ Button |
KT | |
5 | XML | ใส่ Style ให้ Button |
KT | ||
6 | Kotlin | เปลี่ยน Background ของ Button ด้วย Kotlin | KT | ||
7 | Java | Kotlin | สร้าง EditText แบบ programmatically |
KT | |
8 | Java | Kotlin | EditText รับอีเวนท์ onTextChanged() |
KT | |
9 | XML | Label ใน EditText ใช้ TextInputLayout |
KT | ||
10 | Java | การใช้ EditText ร่วมกับ Soft Keyboard |
|||
11 | Java | การซ่อน Soft Keyboard เมื่อ Focus ที่ EditText |
|||
12 | XML | EditText ที่ Soft Keyboard แสดงแต่ตัวเลข |
KT | ||
13 | Java | Kotlin | EditText ที่ แสดง หรือ ซ่อน password |
KT | |
14 | Java | Kotlin | RadioGroup และ RadioButton แบบ programmatically |
KT | |
15 | Kotlin | การใช้ SeekBar |
KT | ||
16 | Kotlin | การกำหนด Custom Range ให้ SeekBar |
KT | ||
17 | Java | Kotlin | การใช้ ProgressBar ใช้ Thread |
KT | |
18 | Kotlin | การใช้งาน Snackbar |
KT | ||
19 | Java | การใช้ ListView |
|||
20 | Java | การใช้ ListView ใน ScrollView |
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | XML | Button : shape : ใส่ Style ให้ Button |
KT | |
2 | Java | TextView , View : shape : การใช้งาน Shape |
||
3 | Java | EditText : shape : ใส่ Style ให้ EditText |
||
4 | XML | TextView : shape : การทำให้พื้นหลังโปร่งใส |
||
5 | XML | Button : shape , style : การใช้ Shape ร่วมกับ Style |
||
6 | XML | View : shape : การกำหนดพื้นหลัง Gradient แบบ linear |
||
7 | XML | LinearLayout , Button , View : shape : การกำหนดพื้นหลัง Gradient แบบ radial |
||
8 | Java | Button , ListView : selector , shape : การใช้ StateList |
||
9 | XML | Button : ripple , shape : การทำ Ripple touch effect |
||
10 | XML | LinearLayout , EditText : layer-list , selector , shape : การใช้งาน LayerList |
||
11 | Java | : layer-list , bitmap , style : การแสดง Splash Screen ด้วย LayerList |
7. Intent
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Java | การรันบราวเซอร์โดยใช้อินเทนต์ Intent.ACTION_VIEW , setOnKeyListener() |
||
2 | Kotlin | เปิด browser ด้วยการส่ง url ไปกับ Intent.ACTION_VIEW |
KT | |
3 | Java | การแชร์ช้อความออกด้วย Intent.ACTION_SEND |
||
4 | Java | สร้าง QR Code บันทึกภาพลงเครื่อง และแชร์ภาพออกด้วย Intent.ACTION_SEND |
||
5 | Java | เลือกเปิดเท็กซ์ไฟล์จากในเครื่องด้วย Intent.ACTION_OPEN_DOCUMENT |
||
6 | Java | เลือกเปิดไฟล์ภาพจากในเครื่องด้วย Intent.ACTION_OPEN_DOCUMENT |
8. แสดงไดอะล็อก (Dialog)
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Java | Kotlin | การแสดงไดอะล็อก Yes/No ด้วย AlertDialog |
KT |
1 | Kotlin | การแสดงไดอะล็อก Yes/No/Cencel ด้วย AlertDialog |
KT | |
2 | Java | แสดงไดอะล็อกตัวเลือกแบบ Single choice | ||
3 | Java | แสดงไดอะล็อกตัวเลือกแบบ Multiple choice | ||
4 | Java | แสดงไดอะล็อกปรับแต่งเอง Custom dialog | ||
5 | Java | แสดงไดอะล็อกโปรเกรส ProgressDialog ใช้ Thread |
9. การใช้เว็บวิว (WebView)
No | Java | Kotlin | Project | Link |
---|---|---|---|---|
1 | Kotlin | การฝังบราวเซอร์ในแอพโดยใช้เว็บวิว WebView |
KT | |
2 | Java | ฝังเว็บวิว WebView เพื่อแสดงกราฟ (Graph) |
||
3 | Java | การใช้จาวาในแอนดรอยด์เรียกจาวาสคริปต์ในเว็บเพจและกลับกัน addJavascriptInterface() |
Activity และ Screen
- การตรวจสอบขนาดของหน้าจอ
- การกำหนดสีพื้นหลัง (background)
- กดปุ่มย้อนกลับ 2 ครั้ง ถึงจะออกจากแอพ
- การออกจากแอบแบบต่างๆ
- การจัดเก็บสถานะของ Activity เมื่อหมุนหน้าจอ
Basic Libraries
- การสร้างอักษรวิ่งขึ้นด้วย Marquee View
- การสร้าง Tooltip ด้วย Simple Tooltip
- การใช้ไลบรารี Segment Control
- การใช้ไลบรารี Slide Switch
- การใช้ไลบรารี Process Button
- การใช้ไลบรารี Material Spinner
- การใช้ไลบรารี ScollableNumberPicker
- การใช้ไลบรารี ShapeImageView
- การใช้ไลบรารี TriangleLabelView
- การใช้ไลบรารี DateTimePickerEditText
Animation
- การทำ Animation (Rotate)
- การทำ Animation (Scale)
- การทำ Animation (Alpha)
- การทำ Animation (Translate)
- การทำ Animation (Interpolator)
- การใช้คลาส AnimatorSet
- การสร้าง Animation ด้วย XML View Animation
Layout และ ScrollView
- การใช้ LinearLayout , การใช้แบบ Programmatically
- การใช้ FrameLayout
- การใช้ TableLayout , การใช้แบบ Programmatically
- การใช้ GridLayout , การใช้แบบ Programmatically
- การจัดการ RelativeLayout แบบ Programmatically
- การวางโครงร่างแบบ Nested Layout
- การใช้ ScrollView
- การสร้าง Layout แบบแยกแนวตั้งและแนวนอน
Fragment & Dialog
- การทำ Static Fragment
- การทำ Dynamic Fragment
- การใช้ Fragment Transaction
- การจัดเก็บ Fragment ไว้ใน Back Stack
- การใช้ UI ของ Fragment
- การส่งค่า Argument ไปยัง Fragment
- การสร้าง Dialog Fragment
- การสร้าง Confirm Dialog Fragment
- การสร้าง Single Choice Dialog Fragment
- การสร้าง Multiple Choice Dialog Fragment
- การสร้าง Custom Dialog Fragment
ViewPager & Page Transition
- การใช้ ViewPager เบื้องต้น
- การใช้ไลบรารี PageIndicatorView
- การใช้ไลบรารี SegmentedButton กับ ViewPager
- Error การใช้ไลบรารี EasyTab กับ ViewPager
- การใช้ ViewPager แบบไม่มี Fragment (ใช้ไลบรารี PageIndicatorView)
- การทำ Fragment Transition
- การทำ Dialog Fragment Transition
- การใช้ไลบรารี ViewPagerTransformer
- การใช้ไลบรารี FragmentAnimations
Navigation & Scrolling Effect
- การจัดรูปแบบเมนู Main, Popup และ Context
- การสร้าง Custom Toolbar
- การทำ Collapsing Toolbar และ Parallax Effect
- การใช้ TabLayout ร่วมกับ Collapsing Toolbar
- การแสดงปุ่ม FAB ให้สัมพันธ์กับการเลื่อนเพจ
- การสร้างและแสดง Bottom Sheet แบบต่างๆ
- การสร้าง Navigation Drawer
- การใช้ไลบลารี Floating Toolbar และ Floating Navigation View (อลังการ)
- การใช้ไลบลารี AHBottomNavigation
Custom ListView & GridView
- การจัดการ ListView Item (search, add, edit, remove)
- การทำ Custom ListView เบื้องต้น
- การใช้ ViewHolder ร่วมกับ Custom ListView
- การเข้าถึงรายการของ Custom LIstView
- การสร้าง Custom ListView แบบ Multiple Layout
- การสร้าง Expandable ListView
- การสร้าง Custom GridView
RecyclerView & CardView
- การสร้าง RecyclerView เบื้องต้น
- การสร้าง RecyclerView แบบ Multiple Layout
- การสร้างภาพ Drawable กับ RecyclerView
- การใช้ไลบรารี ImageLetterIcon (ไลบรารีมีปัญหา)
- การใช้ CardView กับ RecyclerView
- การเข้าถึงรายการใน RecyclerView
- การใช้ Layout Manager แบบต่างๆ
- การสร้างรายการแบบ 2 ทิศทาง
- การสร้างรายการแบบ Endless Scrolling
- การทำ Drag & Drop กับ RecyclerView
Addition Libraries
- การใช้ไลบรารี SimplePermissions
- การใช้ไลบรารี FilePicker
- การใช้ไลบรารี Multimager
- การ Crop ภาพโดยใช้ไลบรารี Simple Storage และ Image Cropper
- การบีบอัดภาพด้วย SiliCompress
- การใช้ไลบรารี MaterialBradgeTextView ***
- การใช้ไลบรารี Badger **
- การใช้ไลบรารี ShortcutBadger
SQLite Database
- การใช้ SQLite CRUD
- การใช้ SQLite หลายตาราง และรูปภาพ
- การจัดเก็บรายการ ListView ด้วย SQLite
- การจัดเก็บรายการ RecyclerView ด้วย SQLite
- การแสดงรายการข้อมูลจาก SQLite แบบ Endless Scrolling
Network & Http Server
- การโหลดและแสดงรูปภาพจากเครือข่าย
- การรับส่งข้อมูลกับเซิร์ฟเวอร์ในแบบ String
- การรับข้อมูลแบบ Json และแสดงข้อมูลด้วย RecyclerView
- การอัปโหลดไฟล์
- การดาวน์โหลดไฟล์
อื่นๆ
- การทำ Unit test
การแจ้งเตือน (Notification)- การใช้ฐานข้อมูล SQLite
- การนำ APK ไปติดตั้ง
- การใช้งาน Services
- Text to Speech
อื่นๆ Java
การซ่อน TitleBar และทำ FullScreen
- การซ่อน TitleBar
- การทำ FullScreen
- การซ่อน TitleBar และทำ FullScreen
- การซ่อน TitleBar และทำ FullScreen ที่ดีกว่าด้วยการใช้
setSystemUiVisibility()
- การซ่อน FAB, ActionBar, StatusBar และ Navigation
Permission
การรับ SMS ใหม่ที่เข้ามา (Receive Incoming SMS)
Tab
ListView
- การใช้งาน ListView
- การใช้งาน ListView แบบ Multiple Choice
- การใช้งาน ListView แบบ Filter ได้
- การใช้งาน ListView ที่แสดง Popup ได้
- ปรับแต่ง ListView ด้วย SimpleAdapter
- ปรับแต่ง ListView ให้แสดง Image และ Text โดยใช้ BaseAdapter
Spinner
Firebase
- การใช้งาน Firebase
- การเขียน Firebase แบบ Key-Value
- การเขียน Firebase แบบปรับแต่ง (Custom)
- การเขียน Firebase ด้วย updateChildren()
QR Code
- สร้าง QR Code และ Barcode โดยใช้ Zxing
- สร้าง QR Code และบันทึกภาพลงเครื่อง
- สร้าง QR Code บันทึกภาพลงเครื่อง และแชร์ภาพออกด้วย Intent
- อ่าน QR Code
- การอ่าน Barcode/QR Code ด้วยไลบรารี ZXing (คนละอันกับอันอื่น)
Advance
developer.android.com
Link
- สร้าง icon ให้กับแอพ Android Asset Studio – Launcher icon generator
Article