อะแดปเตอร์ใน Android มีบทบาทอย่างไร


124

ฉันต้องการที่จะรู้ว่าเมื่อ , ที่และวิธีการที่อะแดปเตอร์ที่ใช้ในบริบทของหุ่นยนต์

ข้อมูลจากเอกสารสำหรับนักพัฒนาของ Android ไม่เพียงพอสำหรับฉันและฉันต้องการรับการวิเคราะห์โดยละเอียดเพิ่มเติม

คำตอบ:


29

สมมติว่าคุณต้องการแสดงรายการในแอป Android ของคุณ สำหรับสิ่งนี้คุณจะใช้สิ่งที่ListViewให้มาโดย Android ListViewไม่มีข้อมูลใด ๆ มันเป็นเพียงองค์ประกอบ UI ที่ไม่มีข้อมูลอยู่ในนั้น คุณสามารถเติมListViews ของคุณโดยใช้อะแดปเตอร์ Android

Adapterเป็นอินเทอร์เฟซที่มีการใช้งานให้ข้อมูลและควบคุมการแสดงข้อมูลนั้น ListViewอะแดปเตอร์ของตัวเองที่ควบคุมการListViewแสดงผลอย่างสมบูรณ์ ดังนั้นอะแด็ปเตอร์จึงควบคุมเนื้อหาที่แสดงในรายการตลอดจนวิธีการแสดง

อินเตอร์เฟซรวมถึงวิธีการต่างๆในการสื่อสารข้อมูลไปยังAdapter คุณสามารถสร้างอะแดปเตอร์ของคุณเองตั้งแต่เริ่มต้นโดยการใช้ListViewBaseAdapter

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

ให้กำหนดอะแดปเตอร์:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • พารามิเตอร์แรก: บริบท
  • พารามิเตอร์ที่สอง: เค้าโครงสำหรับแถว
  • พารามิเตอร์ที่สาม: ID ของTextViewข้อมูลที่เขียน
  • พารามิเตอร์ที่สี่: อาร์เรย์ของข้อมูล

45

อะแดปเตอร์ที่ดีใน Android นั้นเป็นสะพานเชื่อมระหว่างส่วนประกอบ UI และแหล่งข้อมูลที่เติมข้อมูลลงในคอมโพเนนต์ UI

ตัวอย่างเช่น Lists (UI Component) จะได้รับการเติมข้อมูลโดยใช้ list adapter จากอาร์เรย์แหล่งข้อมูล


21
นี่เป็นข้อมูลเดียวกับที่ฉันได้รับจากเอกสารประกอบ แต่ฉันต้องการคำอธิบายโดยละเอียด
Robin

26

ฉันอยากจะแบ่งปันความเข้าใจของฉัน

เป็นอินเทอร์เฟซระหว่างแหล่งข้อมูลและเลย์เอาต์ของคุณ (ส่วนใหญ่อาจเป็น ListView)

การเปรียบเทียบ

ลองดูตัวอย่างของที่ชาร์จมือถือหรือสาย USB สายไฟถือได้ว่าเป็นอะแดปเตอร์ในขณะที่แหล่งข้อมูลและเค้าโครงสามารถเข้าใจได้ว่าเป็นซ็อกเก็ต (จุดเสียบปลั๊ก) และพอร์ต USB (จุดชาร์จ) ตามลำดับ

ในกรณีของการชาร์จมือถือแหล่งที่มาของพลังงานอาจแตกต่างกันเช่นชาร์จจากพาวเวอร์แบงค์ซ็อกเก็ตหรือแล็ปท็อป เช่นเดียวกับกรณีของอะแดปเตอร์ที่ใช้ใน Android แหล่งข้อมูลอาจเปลี่ยนแปลงได้ขึ้นอยู่กับความต้องการของแอปพลิเคชัน

กล่าวโดยย่ออะแดปเตอร์ใน Android จะนำข้อมูลจากแหล่งที่มา (เช่นArrayList<>) และส่งไปยังเค้าโครง (ไฟล์. xml)


2
ตัวอย่างที่ดีที่สุดจนถึงตอนนี้: D ทำได้ดีมาก!
Daksh Gargas

8

อะแดปเตอร์ใน Android เป็นสะพานเชื่อมระหว่างมุมมองอะแดปเตอร์ (เช่นListView) และข้อมูลพื้นฐานสำหรับมุมมองนั้น ลองนึกดูว่าโลกจะเป็นอย่างไรหากไม่มีอะแดปเตอร์!

ตัวอย่าง

  • มุมมองที่แสดงรายการในรายการเลื่อนในแนวตั้ง รายการมาจากการListAdapterเชื่อมโยงกับมุมมองนี้

  • ListAdapterกำหนดโครงร่างแต่ละแถวของรายการและให้ข้อมูลไปListViewผ่านวิธีการsetAdapter() ListView

  • Android มีอะแดปเตอร์มาตรฐานหลายตัว ที่สำคัญที่สุดคือ และArrayAdapterCursorAdapter

  • ArrayAdapter สามารถจัดการข้อมูลตามอาร์เรย์หรือรายการ

  • SimpleCursorAdapter สามารถจัดการข้อมูลที่เกี่ยวข้องกับฐานข้อมูล

4

โดยทั่วไปแล้วอะแดปเตอร์จะใช้เพื่อส่งมอบเนื้อหา อะแดปเตอร์หนึ่งตัวที่คุณอาจมีในทุกแอปพลิเคชันคือ CursorAdapter ซึ่งช่วยให้คุณสามารถส่งมอบเนื้อหาที่กำหนดโดยเคอร์เซอร์จากแบบสอบถามฐานข้อมูล ListView มี Adapter เกือบตลอดเวลา


7
นี่เป็นข้อมูลเดียวกับที่ฉันได้รับจากเอกสารประกอบ แต่ฉันต้องการคำอธิบายโดยละเอียด
Robin

@ โรบิน: ทำไมคุณไม่ฉลองครบรอบ 10 ปีของคำถามของคุณด้วยการ "ยอมรับ" หนึ่งในคำตอบ โดยส่วนตัว: 1) ฉันคิดว่าคำถามของคุณมีค่า (นั่นคือสิ่งที่ฉันสรุปไว้ที่นี่) 2) ฉันพบว่าคำตอบเหล่านี้มีประโยชน์มากมาย (รวมถึงคำถามนี้) ... และ 3) ฉันไม่รู้ว่าคุณหมายถึงอะไร " คำอธิบายโดยละเอียดเพิ่มเติม " บางทีนั่นอาจเป็นเพราะฉันสนใจ "ทำไม" มากกว่า (ตามที่อธิบายไว้ข้างบน); ฉันสนใจมากขึ้นใน "ป่า" (เช่นการตอบสนองของ WarrenFaith) กว่า "ต้นไม้รายละเอียด" (whichi สามารถได้รับจากเอกสารประกอบ) โปรด
โหวต

4

อะแด็ปเตอร์ทำหน้าที่เป็นสะพานเชื่อมระหว่างAdapterViewข้อมูลพื้นฐานสำหรับมุมมองนั้น อะแด็ปเตอร์จัดเตรียมการเข้าถึงรายการข้อมูลและรับผิดชอบในการสร้างมุมมองสำหรับแต่ละรายการในชุดข้อมูล

อะแดปเตอร์เป็นวิธีที่ชาญฉลาดในการเชื่อมต่อViewกับแหล่งข้อมูลบางประเภท โดยปกติมุมมองของคุณจะเป็นListViewและข้อมูลที่จะมาในรูปแบบของหรือCursor Arrayดังนั้นอะแดปเตอร์มาเป็นคลาสย่อยหรือCursorAdapterArrayAdapter


2

อะแด็ปเตอร์จัดการโมเดลข้อมูลและปรับให้เข้ากับแต่ละแถวในมุมมองรายการ มันขยายBaseAdapterชั้นเรียน

ทุกบรรทัดในมุมมองรายการประกอบด้วยเค้าโครงที่ซับซ้อนเท่าที่คุณต้องการ บรรทัดทั่วไปในมุมมองรายการจะมีรูปภาพทางด้านซ้ายและบรรทัดข้อความสองบรรทัดอยู่ตรงกลาง


0

อะแดปเตอร์ใช้เพื่อให้บรรลุแนวคิดมุมมองรายการ ไม่เพียง แต่สำหรับการแสดงรายการข้อมูล แต่ยังรวมถึงมุมมองที่กำหนดเองบางส่วนด้วย สมมติว่าลูกค้าต้องการใช้รายการที่มีจำนวน textview มากกว่า (มุมมองอื่น ๆ ) จากนั้นเราต้องใช้มุมมองอะแดปเตอร์ใน Android


0

มีคำตอบหลายคำตอบอยู่แล้ว แต่ฉันต้องการให้คำตอบอื่น

วิธีอะแดปเตอร์ที่คุณสามารถที่ผู้ให้บริการสะพานมัน

อะแดปเตอร์คือลิงก์ระหว่างชุดข้อมูลและ AdapterView ที่แสดงข้อมูล


0

ในตอนท้ายอะแดปเตอร์มีประโยชน์มากในการทำรายงาน หากต้องการแสดงรายงานข้อมูลบางส่วนสามารถใช้เครื่องมือนี้เพื่อแสดงข้อมูลในมุมมอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.