คำถามติดแท็ก android-arrayadapter

7
“ android.R.layout.simple_list_item_1” คืออะไร?
ฉันเริ่มเรียนรู้การพัฒนา Android และฉันกำลังติดตามตัวอย่างของหนังสือจาก todolist: // Create the array list of to do items final ArrayList<String> todoItems = new ArrayList<String>(); // Create the array adapter to bind the array to the listView final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, todoItems ); myListView.setAdapter(aa); ฉันไม่เข้าใจรหัสนี้โดยเฉพาะอย่างยิ่งบรรทัดนี้: android.R.layout.simple_list_item_1

3
“ ArrayAdapter ต้องการ ID ทรัพยากรจะเป็นปัญหา TextView” xml
ฉันได้รับข้อผิดพลาดเมื่อพยายามตั้งค่ามุมมองให้แสดงListViewไฟล์ที่ฉันต้องการแสดง (ไฟล์ข้อความ) ฉันค่อนข้างแน่ใจว่ามีบางอย่างเกี่ยวข้องกับ xml this.file = fileop.ReadFileAsList("Installed_packages.txt");ผมแค่อยากจะแสดงข้อมูลจาก รหัสของฉัน: public class Main extends Activity { private TextView tv; private FileOperations fileop; private String[] file; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.fileop = new FileOperations(); this.file = fileop.ReadFileAsList("Installed_packages.txt"); setContentView(R.layout.main); tv = (TextView) …

5
ตัวอย่าง informDataSetChanged
ฉันพยายามที่จะใช้วิธีAndroid ApplicationการของฉันnotifyDataSetChanged()สำหรับArrayAdapterแต่มันไม่ทำงาน ฉันพบว่าเป็นคำตอบที่นี่ที่notifyDataSetChanged()ควรทำงานในเธรดหลัก แต่ไม่มีตัวอย่างสำหรับที่ ใครช่วยส่งตัวอย่างหรืออย่างน้อยลิงค์?!

11
ฉันจะอัปเดตแถวเดียวใน ListView ได้อย่างไร
ฉันมีListViewรายการข่าวที่แสดง ประกอบด้วยรูปภาพชื่อและข้อความบางส่วน รูปภาพถูกโหลดในเธรดแยกต่างหาก (โดยมีคิวและทั้งหมด) และเมื่อรูปภาพถูกดาวน์โหลดตอนนี้ฉันเรียกnotifyDataSetChanged()ใช้รายการอะแดปเตอร์เพื่ออัปเดตรูปภาพ วิธีนี้ใช้งานได้ แต่getView()ถูกเรียกบ่อยเกินไปเนื่องจากnotifyDataSetChanged()เรียกgetView()รายการที่มองเห็นได้ทั้งหมด ฉันต้องการอัปเดตเพียงรายการเดียวในรายการ ฉันจะทำอย่างไร ปัญหาที่ฉันมีกับแนวทางปัจจุบันของฉันคือ: การเลื่อนทำได้ช้า ฉันมีภาพเคลื่อนไหวที่เลือนหายไปในภาพซึ่งจะเกิดขึ้นทุกครั้งที่มีการโหลดภาพใหม่ในรายการ

5
ส่วนหัวของ Android ListView
ฉันมี ListView ที่มีเหตุการณ์บางอย่างอยู่ กิจกรรมจะเรียงตามวันและฉันต้องการให้ส่วนหัวมีวันที่สำหรับทุกวันจากนั้นกิจกรรมจะฟังด้านล่าง นี่คือวิธีที่ฉันเติมรายการนั้น: ArrayList<TwoText> crs = new ArrayList<TwoText>(); crs.add(new TwoText("This will be header", event.getDate())); for (Event event : events) { crs.add(new TwoText(event.getStartString() + "-" + event.getEndString(), event.getSubject())); } arrayAdapter = new TwoTextArrayAdapter(this, R.layout.my_list_item, crs); lv1.setAdapter(arrayAdapter); และนี่คือลักษณะของคลาส TwoText ของฉัน: public class TwoText { public String classID; public String state; …

8
เมธอด getView () ทำงานอย่างไรเมื่อสร้างอะแดปเตอร์แบบกำหนดเองของคุณเอง
คำถามของฉันคือ: LayoutInflater มีหน้าที่อะไรกันแน่? เหตุใดบทความทั้งหมดที่ฉันอ่านจึงตรวจสอบว่า convertview เป็นโมฆะหรือไม่ก่อน มันหมายความว่าอะไรเมื่อมันเป็นโมฆะและเมื่อมันไม่ใช่หมายความว่าอย่างไร พารามิเตอร์หลักที่วิธีนี้ยอมรับคืออะไร?

6
อะไรคือความแตกต่างระหว่าง BaseAdapter และ ArrayAdapter?
ฉันต้องการทราบความแตกต่างระหว่างการใช้BaseAdapterและArrayAdapter. ArrayAdaptersฉันได้รับการบรรลุสิ่งที่ฉันต้องการผ่าน มีผลต่อประสิทธิภาพของListViewอินเทอร์เฟซบนอะแด็ปเตอร์ที่ใช้งานหรือไม่? และคำถามสุดท้ายคือฉันสามารถทำอะไรก็ได้ListViewโดยใช้สิ่งเหล่านี้Adaptersหรือมีบางกรณีที่สามารถใช้อะแดปเตอร์เฉพาะได้หรือไม่?

1
ไม่สามารถแก้ไข ArrayAdapter ใน ListView: UnsupportedOperationException
ฉันกำลังพยายามสร้างรายชื่อที่มีรายชื่อ รายการนี้ควรแก้ไขได้ (เพิ่มลบจัดเรียง ฯลฯ ) อย่างไรก็ตามเมื่อใดก็ตามที่ฉันพยายามเปลี่ยนรายการใน ArrayAdapter โปรแกรมก็ขัดข้องพร้อมjava.lang.UnsupportedOperationExceptionข้อผิดพลาด นี่คือรหัสของฉัน: ListView panel = (ListView) findViewById(R.id.panel); String[] array = {"a","b","c","d","e","f","g"}; final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array); adapter.setNotifyOnChange(true); panel.setAdapter(adapter); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { adapter.insert("h", 7); } }); ฉันลองใส่ลบและล้างวิธีการแล้วก็ไม่ได้ผล จะมีใครบอกฉันไหมว่าฉันทำอะไรผิด?

4
การใช้ ListAdapter เพื่อเติม LinearLayout ภายในเค้าโครง ScrollView
ฉันหันหน้าไปทางปัญหาที่พบบ่อยมาก: ScrollViewฉันวางออกกิจกรรมและตอนนี้ก็จะเปิดออกก็ควรแสดงไม่กี่รายการที่อยู่ในนี้ วิธีปกติในการทำเช่นนั้นคือใช้สิ่งที่มีอยู่ListAdapterเชื่อมต่อกับListViewและบูมฉันจะมีรายการของฉัน แต่คุณไม่ควรวางสิ่งที่ซ้อนกันListViewไว้ในScrollViewขณะที่มันเลื่อนขึ้น - แม้แต่ Android Lint ก็บ่นเกี่ยวกับเรื่องนี้ นี่คือคำถามของฉัน: ฉันจะเชื่อมต่อListAdapterกับ a LinearLayoutหรือสิ่งที่คล้ายกันได้อย่างไร ฉันรู้ว่าโซลูชันนี้จะไม่ปรับขนาดสำหรับรายการจำนวนมาก แต่รายการของฉันสั้นมาก (<10 รายการ) ดังนั้นจึงไม่จำเป็นต้องใช้มุมมองซ้ำ ประสิทธิภาพที่ชาญฉลาดฉันสามารถใช้ชีวิตได้ด้วยการวางมุมมองทั้งหมดลงในไฟล์LinearLayout. วิธีแก้ปัญหาหนึ่งที่ฉันคิดขึ้นมาคือการวางเค้าโครงกิจกรรมที่มีอยู่ในส่วน headerView ของไฟล์ListView. แต่รู้สึกเหมือนกำลังใช้กลไกนี้ในทางที่ผิดดังนั้นฉันจึงมองหาวิธีที่สะอาดกว่านี้ ไอเดีย? อัปเดต:เพื่อสร้างแรงบันดาลใจไปในทิศทางที่ถูกต้องฉันเพิ่มเค้าโครงตัวอย่างเพื่อแสดงปัญหาของฉัน: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/news_detail_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:visibility="visible"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFF" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingLeft="@dimen/news_detail_layout_side_padding" android:paddingRight="@dimen/news_detail_layout_side_padding" android:paddingTop="@dimen/news_detail_layout_vertical_padding" android:paddingBottom="@dimen/news_detail_layout_vertical_padding" > <TextView …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.