นี่จะเป็นบทเรียนที่ผมข้ามไปที่ Lesson 5 นะครับเป็นเรื่อง UI และเทคนิคการจัดการ ListView (Custom) ให้สามารถแสดงค่าตามที่เราต้องการ แต่ใน Lesson นี้ผมไม่ได้ทำตามที่ ClassRoom สอนนะครับเพราะอยากจะทดสอบความสามารถตัวเองในการค้นหาข้อมูลจากเน็ตแต่โดยรวมแล้วผลลัพธ์เหมือนกันครับ วิธ๊การอาจจะแตกต่างไปบ้าง

1. ใช้ GridLayout ในการจัดการ ListItem ในไฟล์ list_item_forecase.xml

ผลลัพธ์ที่ได้ะจได้ตามรูปนี้ครับแต่ ใน Classroom เขาจะใช้ Linear Layout oriented เป็น Horizontal นะครับแต่ผมอยากลองใช้ GridLayout แต่ก็ได้ผลลัพธ์เหมือนกันครับ
Screenshot_2015-08-23-07-30-09

2. การ Custom ArrayAdapter ด้วย Class ที่เราสร้างเอง
2.1 ForeCastObj.java class ที่ใช้เก็บ Object

2.2 ForeCastObjAdapter ที่ใช้ในการ Custom View ด้วย Extend Class ArrayAdapter จุดสังเกตุก็มีสองที่ครับ อันแรกคือ Format ที่เราต้องการกำหนดที่ Contructor method Parameter ตัวที่ 3 อันดับสองก็คือ Method Override getView() ซึ่งควบคุมการแสดงผลใน ListView

2.3 กลับมาแก้ MainActivity นิดหน่อยเพราะว่า Class ที่เราใช้ก็จะเปลี่ยนไปนิดหน่อยตอนเอาเข้า ListView ตามนี้ครับโดย resuls คือ Object ForeCastObj[] ที่ได้มาจาก doInBackground ที่ปรับเปลี่ยนค่าตอน JSON return มานิดหน่อย

3.จัด View ให้ได้ตามรูปและเมื่อทำครบทุกขั้นตอนผลลัพธ์ก็ควรจะแสดงดังรูป
Screenshot_2015-08-23-07-30-06

สรุป ใน Lesson นี้ยังไม่จบนะครับจุดที่ ClassRoom สอนเขาจะใช้ CursorAdapter แทน ArrayAdapter นะครับเข้าใจว่าตอนใช้งานค่อนข้างลำบากกว่าครับเพราะต้องแก้ไขหลายอย่างกว่าแต่ประโยชน์น่าจะดีกว่าในการประยุกต์ใช้กับงานอื่นด้วยครับไม่ใช่แค่ ListView แต่เท่าที่เห็นความสามารถไม่แตกต่างกันไว้ผมมีเวลาจะลองอ่านความแตกต่างมาสรุปให้ฟังนะครับ ยังมีเรื่องการจัด FormatDate ด้วย SimpleDateFormat ที่มีการสอนเพิ่มเติมมา รวมถึงการแสดงผล หน่วยของผลลัพธ์ของอุณหภูมิ แต่คงต้องขอข้าม Lesson นี้ไปทำการบ้านก่อนล่ะครับเพราะไกล้เวลาส่งแล้วทั้ง IOS และ Android ดังนั้นใน ตอนต่อไปจะกล่าวถึงการทำ Project เลยซึ่งผมจะพยายามเขียนให้ละเอียดกว่านะ และเตรียมพบซีรีย์ใหม่ IOS Development นะครับติดตามกันด้วย แล้วเจอกัน!!!!@@!@!@@!@

Written by adminwp