พอดีว่า ทำโปรเจคจบน่ะค่ะ
เขียน web service และเชื่อมต่อกับ android ได้แล้ว ซึ่งค่าจะเป็น JSON น่ะค่ะ
แต่ไม่รู้วิธีจะดึงค่าจาก JSON นั้นมาใช้งานยังไงน่ะค่ะ พยายามอ่านในเน็ตแล้วก็ยังไม่เข้าใจน่ะค่ะ
อยากเอาค่าของ JSON มาเป็น ListView ซึ่งพอ click แล้วจะเปลี่ยนหน้าไปโชว์ข้อมูลอีกทีน่ะค่ะ
พอจะบอกวิธีหน่อยได้มั๊ยอ่ะคะ ขอบคุณมากๆค่ะ
อันนี้โค้ดที่ต่อกับ service ค่ะ
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
Log.i(“REST”, “onCreate—>”);
// setContentView(R.layout.main);
ListView listV;
listV = (ListView)findViewById(R.id.listView1);
Log.i(“REST”, “queryRESTurl”);
String result = queryRESTurl(“http://10.0.2.2:8080/Service/rest/sample/getContactList”);
Log.i(“REST result:”, result);
ส่วนอันนี้คือ JSON ที่ลองทำเอาไว้ที่ได้มาจาก service ที่เขียนเอาไว้น่ะค่ะ
{
“contacts”:
[
{
“addressList”:[{“detail”:”aaaaa”}],
“lastname”:null,
“tel”:null,
“name”:”name1″
},
{
“addressList”:[{“detail”:”bbbbb”}],
“lastname”:null,
“tel”:null,
“name”:”name2″
},
{
“addressList”:[{“detail”:”ccccccc”}],
“lastname”:null,
“tel”:null,
“name”:”name3″
}
]
}
ต้องการดึงค่า name มาเป็น ListView น่ะค่ะ
เอาฟังก์ชันที่ Get ข้อมูลจาก JSON Services ไปเรียงเป็น JSONObject ก่อนละกันครับ
https://ideone.com/ipPAi
จากนั้นพอรับค่าที่ได้เป็น JSONobject แล้ว นำไป Serialize อีกเพื่อให้เป็น Arraylist จะได้จัดการง่ายๆครับ
https://ideone.com/7DQ1W
ส่วนที่ต้องแก้ไข หรือสังเกตนะครับ
1. ผมสร้าง Class ชื่อ Package สำหรับเป็นคลาสออปเจคต์ ของข้อมูลที่ได้รับมา
2. ที่ผมเขียนตรงส่วนนี้ json.getJSONArray(“Result”);
เพราะ data ของผมเป็นแบบนี้ครับ
{“Result”:[{“ID”:1,”NAME”:1},{“ID”:2,”NAME”:2}], “Success”: true}
ประมาณนี้ครับ ซึ่งของคุณน่าจะเปลี่ยนเป็น json.getJSONArray(“contacts”);
3. ผมเขียนฟังก์ชันอีกอัน คือ SerializePackage(e) ซึ่งคุณต้องไปเขียนขึ้นมาเองอีกทีหนึ่ง
หวังว่าจะมีประโยชน์นะครับ
อ่อ ลืมบอกขั้นตอนสุดท้าย
หลังจากได้ Arraylist แล้ว ก็จัดการ Binding เข้ากับ ListView ที่ต้องการครับ
หรือจะสร้าง Custom ListView ขึ้นมาจัดการก็ได้ครับ ก็สร้าง Class ที่ extend ArrayAdapter ขึ้นมาครับ
ขอบคุณมากๆค่ะ
จะลองพยายามทำดูนะคะ ^^
เข้ามาแอบฟัง
คือ ผมก็ศึกษาเรื่องนี้อยู่นะครับ พึ่งเรื่มศึกษาครับ
ผมลองดูโค๊ดแล้วยังไม่เข้าใจน่ะครับ
ที่ผมเขียนมันยังรันไม่ได้อยู่ รบกวนขอโค๊ดตัวอย่างแบบเต็มๆได้ปะครับ
ดึงค่าจาก JSON มาใน ListView ยังไม่ได้เลยครับ
รบก่วนช่วยหน่อยน่ะครับ