คำถามติดแท็ก listview

ListView เป็นการควบคุมหน้าจอกราฟิกหรือวิดเจ็ตที่จัดทำโดยไลบรารี UI ในระบบปฏิบัติการสมัยใหม่ส่วนใหญ่เพื่อแสดงรายการในรูปแบบรายการ

6
เราควรใช้ RecyclerView เพื่อแทนที่ ListView หรือไม่
เอกสาร Android พูดว่า: วิดเจ็ต RecyclerView เป็น ListView เวอร์ชันขั้นสูงและยืดหยุ่นมากขึ้น วิดเจ็ตนี้เป็นที่เก็บสำหรับการแสดงชุดข้อมูลขนาดใหญ่ที่สามารถเลื่อนได้อย่างมีประสิทธิภาพมากโดยรักษาจำนวนการดู จำกัด ใช้วิดเจ็ต RecyclerView เมื่อคุณมีการเก็บรวบรวมข้อมูลที่องค์ประกอบเปลี่ยนแปลงที่รันไทม์ตามการกระทำของผู้ใช้หรือเหตุการณ์เครือข่าย ที่จริงแล้วListViewสามารถทำทุกอย่างได้ถ้าประสิทธิภาพไม่สำคัญและเราพบปัญหามากมายเมื่อเราใช้RecyclerViewเพื่อแทนที่ListView: ไม่มี onItemClickListener () สำหรับการเลือกรายการ - วิธีแก้ไข ไม่มีตัวคั่นระหว่างรายการ - วิธีแก้ไข ไม่มีตัวเลือกการซ้อนทับในตัวไม่มีการตอบกลับด้วยภาพเมื่อคุณคลิกที่รายการ - วิธีแก้ปัญหา ไม่มีaddHeaderViewสำหรับส่วนหัวของรายการ - วิธีแก้ไข อาจมีปัญหาเพิ่มเติม ... ดังนั้นเมื่อเราใช้RecyclerViewเพื่อแทนที่เราจะต้องทำมากเป็นพิเศษการเข้ารหัสในการเข้าถึงผลเช่นเดียวกับ ListViewListView คำถาม: มันคุ้มค่าที่เราจะแทนที่ListViewด้วยRecyclerViewทั้งหมดหรือไม่ ถ้าไม่ใช่ในกรณีใดเราควรใช้ดีกว่าRecyclerViewแทนListViewและในทางกลับกัน

2
วิธีการรับเค้าโครง Inflater ให้บริบท?
ฉันกำลังเขียนการใช้งานแบบกำหนดเองของ ListAdapter ใน Constructor ของมันฉันใช้ Context, ID ทรัพยากร (เช่น R.id.xxx ซึ่งเป็นตัวแทนของไฟล์เลย์เอาต์) และรายการและแผนที่ (เหล่านี้มีข้อมูล) ตอนนี้ปัญหาคือฉันจะต้องมี LayoutInflater เพื่อรับวัตถุดูซึ่งอยู่ในไฟล์ XML รูปแบบแยกต่างหาก ฉันจะถือ LayoutInflater ให้เฉพาะบริบทได้อย่างไร ตอนนี้เหตุผลที่ฉันคิดว่ามันเป็นไปได้ก็คือมันค่อนข้างคล้ายกับสิ่งที่ถูกส่งผ่านไปยังตัวสร้างของ ArrayAdapter (บริบททรัพยากร textViewResourceId อาร์เรย์ข้อมูล) และฉันคิดว่า ArrayAdapter ยังต้องใช้ LayoutInflater ให้เฉพาะบริบท แต่จะทำได้อย่างไร?

3
การตั้งค่า baselineAligned เป็น false ปรับปรุงประสิทธิภาพใน LinearLayout อย่างไร
ฉันเพิ่งสร้าง UI ใน xml และ Lint ให้คำเตือนและบอกให้ตั้ง android: baselineAligned เป็น false เพื่อปรับปรุงประสิทธิภาพใน ListView เอกสารสำหรับการเปลี่ยนผ้าสำลีที่เพิ่มคำเตือนนี้กล่าว ประสิทธิภาพของรูปแบบ: ค้นหา LinearLayouts ด้วยน้ำหนักที่คุณควรตั้งค่า Android: baselineAligned = "false" เพื่อประสิทธิภาพที่ดีขึ้นและยังพบกรณีที่คุณมีน้ำหนักซ้อนกันซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพ ใครสามารถอธิบายได้ว่าทำไมสิ่งนี้ถึงปรับปรุงประสิทธิภาพโดยเฉพาะเมื่อน้ำหนักมีส่วนร่วม

13
อะแดปเตอร์ที่กำหนดเองสำหรับมุมมองรายการ
ฉันต้องการสร้างcustom adapterสำหรับมุมมองรายการของฉัน มีบทความใดบ้างที่สามารถแนะนำขั้นตอนการสร้างและอธิบายวิธีการใช้งานได้

19
ListList แนวนอนใน Android?
เป็นไปได้ไหมที่จะทำให้เป็นListViewแนวนอน? ฉันทำสิ่งนี้โดยใช้มุมมองแกลเลอรี แต่รายการที่เลือกมาที่กึ่งกลางของหน้าจอโดยอัตโนมัติ ฉันไม่ต้องการรายการที่เลือกในจุดเดียวกับที่ฉันคลิก ฉันจะแก้ไขปัญหานี้ได้อย่างไร ความคิดของฉันคือการตั้งค่าListViewด้วยการเลื่อนแนวนอน แบ่งปันความคิดของคุณ?

14
วิธีการเพิ่มหรือลบแถวรายการ Android สำหรับดูภาพเคลื่อนไหว
ใน iOS มีสิ่งอำนวยความสะดวกที่ง่ายและมีประสิทธิภาพในการเคลื่อนไหวเพิ่มและลบแถว UITableView นี่คือคลิปจากวิดีโอ youtube ที่แสดงภาพเคลื่อนไหวเริ่มต้น สังเกตว่าแถวที่ล้อมรอบยุบลงในแถวที่ถูกลบอย่างไร แอนิเมชันนี้ช่วยให้ผู้ใช้ติดตามสิ่งที่เปลี่ยนแปลงในรายการและตำแหน่งที่อยู่ในรายการที่พวกเขาดูเมื่อข้อมูลมีการเปลี่ยนแปลง ตั้งแต่ผมได้รับการพัฒนาบน Android ฉันได้พบว่าไม่มีสิ่งอำนวยความสะดวกเทียบเท่ากับการเคลื่อนไหวแต่ละแถวในtableView การเรียกใช้ตัวปรับnotifyDataSetChanged()ต่อของฉันทำให้ ListView อัปเดตเนื้อหาด้วยข้อมูลใหม่ทันที ฉันต้องการแสดงภาพเคลื่อนไหวอย่างง่ายของแถวใหม่ที่ผลักเข้าหรือเลื่อนออกเมื่อข้อมูลมีการเปลี่ยนแปลง แต่ฉันไม่สามารถหาวิธีการทำเอกสารได้ ดูเหมือนว่าLayoutAnimationControllerอาจเก็บกุญแจไว้เพื่อให้มันใช้งานได้ แต่เมื่อฉันตั้งค่า LayoutAnimationController ใน ListView ของฉัน (คล้ายกับLayoutAnimation ApiDemo ของ 2 ) และลบองค์ประกอบออกจากอะแดปเตอร์ของฉันหลังจากที่รายการแสดงองค์ประกอบหายไปทันที . ฉันได้ลองทำสิ่งต่อไปนี้เพื่อสร้างรายการแต่ละรายการเมื่อมันถูกลบ: @Override protected void onListItemClick(ListView l, View v, final int position, long id) { Animation animation = new ScaleAnimation(1, 1, …

25
Android, ListView IllegalStateException:“ เนื้อหาของอะแดปเตอร์มีการเปลี่ยนแปลง แต่ ListView ไม่ได้รับการแจ้งเตือน”
สิ่งที่ฉันต้องการทำ : เรียกใช้เธรดพื้นหลังซึ่งคำนวณเนื้อหา ListView และอัปเดต ListView บางส่วนในขณะที่คำนวณผลลัพธ์ สิ่งที่ฉันรู้ว่าฉันต้องหลีกเลี่ยง : ฉันไม่สามารถยุ่งกับเนื้อหา ListAdapter จากเธรดพื้นหลังดังนั้นฉันจึงสืบทอด AsyncTask และเผยแพร่ผลลัพธ์ (เพิ่มรายการไปยังอะแดปเตอร์) จาก onProgressUpdate อะแดปเตอร์ของฉันใช้ ArrayList ของวัตถุผลลัพธ์การดำเนินการทั้งหมดในรายการอาร์เรย์เหล่านั้นจะถูกซิงโครไนซ์ งานวิจัยของคนอื่น ๆ : มีข้อมูลที่มีคุณค่ามากที่นี่ ฉันยังได้รับความเดือดร้อนจากการล่มเกือบทุกวันสำหรับกลุ่มผู้ใช้ประมาณ 500 คนและเมื่อฉันเพิ่มlist.setVisibility(GONE)/trackList.setVisibility(VISIBLE)block ใน onProgressUpdate การล่มก็ลดลงด้วยปัจจัย 10 แต่ไม่หายไป (แนะนำในคำตอบ ) สิ่งที่ฉันได้รับ : โปรดสังเกตว่ามันไม่ค่อยเกิดขึ้นจริง ๆ (สัปดาห์ละครั้งสำหรับผู้ใช้หนึ่งใน 3.5k) แต่ฉันต้องการกำจัดข้อผิดพลาดนี้อย่างสมบูรณ์ นี่คือ stacktrace บางส่วน: `java.lang.IllegalStateException:` The content of the adapter …

4
ArrayIndexOutOfBoundsException พร้อมตัวปรับต่อ Android แบบกำหนดเองสำหรับหลายมุมมองใน ListView
ฉันกำลังพยายามสร้างอแด็ปเตอร์ที่กำหนดเองสำหรับ ListView ของฉันเนื่องจากแต่ละรายการในรายการสามารถมีมุมมองที่แตกต่างกัน (ลิงค์สลับหรือกลุ่มวิทยุ) แต่เมื่อฉันพยายามเรียกใช้กิจกรรมที่ใช้ ListView ฉันได้รับข้อผิดพลาดและ แอพหยุด แอปพลิเคชั่นนี้มีเป้าหมายสำหรับแพลตฟอร์ม Android 1.6 รหัส: public class MenuListAdapter extends BaseAdapter { private static final String LOG_KEY = MenuListAdapter.class.getSimpleName(); protected List<MenuItem> list; protected Context ctx; protected LayoutInflater inflater; public MenuListAdapter(Context context, List<MenuItem> objects) { this.list = objects; this.ctx = context; this.inflater = (LayoutInflater)this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } …

8
Android: รายการมุมมองที่มีหลายปุ่มที่คลิกได้
ฉันเป็นListViewที่ที่ทุกองค์ประกอบในรายการประกอบด้วย TextView และปุ่มที่แตกต่างกันสองปุ่ม บางสิ่งเช่นนี้ ListView -------------------- [Text] [Button 1][Button 2] -------------------- [Text] [Button 1][Button 2] -------------------- ... (and so on) ... ด้วยรหัสนี้ฉันสามารถสร้างOnItemClickListenerรายการทั้งหมด: listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> list, View view, int position, long id) { Log.i(TAG, "onListItemClick: " + position); } } }); อย่างไรก็ตามฉันไม่ต้องการให้คลิกทั้งรายการ แต่จะมีเพียงสองปุ่มของแต่ละรายการเท่านั้น ดังนั้นคำถามของฉันคือฉันจะใช้งาน onClickListener อย่างไรสำหรับปุ่มทั้งสองด้วยพารามิเตอร์ต่อไปนี้: …
182 android  listview  button 

14
วิธีเลื่อนไปที่ด้านบนสุดของเค้าโครง ScrollView ที่ยาวได้อย่างไร
สำหรับส่วนหนึ่งของแอพของฉันผู้ใช้จะได้รับรายชื่อและขอให้จัดกลุ่มตามที่เห็นสมควร (หมายเหตุรหัส ListView ถูกคัดลอกคำต่อคำจากการสอน Android Views ฉันยังไม่ได้ปรับแต่งมันให้ตรงกับความต้องการของฉันฉันแค่พยายามหาวิธีใช้งานนี้) เค้าโครงพื้นฐานคือ LinearLayout ที่มี ScrollView (เรียกว่า "groupsScrollView" ในรหัสด้านล่าง) ซึ่งมี RelativeLayout ฉันมีปุ่มและข้อความจากนั้น ListView ของฉันอยู่ด้านล่างซึ่งแสดงรายการชื่อ ทั้งหมดนี้สูงกว่าพื้นที่หน้าจอที่มองเห็นได้ดังนั้นผู้ใช้จึงสามารถเลื่อนในแนวตั้งเพื่อดูได้ทั้งหมด ทั้งหมดนี้ทำงานได้อย่างสวยงามยกเว้นเมื่อหน้าโหลดมันจะถูกเลื่อนไปด้านบนของ ListView ของฉันเสมอ - ในช่วงกลางของหน้า ข้อความและปุ่มที่ฉันสร้างที่บอกผู้ใช้ว่าต้องทำอย่างไรจะมองไม่เห็น ฉันสามารถคว้าหน้าจอและเลื่อนขึ้นซึ่งใช้งานได้ดี แต่ฉันต้องการให้หน้าจอโหลดหลังจากที่เลื่อนไปด้านบนแล้ว ผู้ใช้ไม่ควรเลื่อนขึ้นเพื่อดูด้านบนของหน้าที่โหลดใหม่ แต่ทุกอย่างที่ฉันพยายามเลื่อนไปทางด้านบนของหน้าจอโดยทางโปรแกรมล้มเหลว นี่คือวิธีการ onCreate ของฉัน: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.groups); mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView); //get the Bundle out of the Intent... …

11
listview อะแด็ปเตอร์ listview แบบกำหนดเองถูกเรียกหลายครั้งและไม่เรียงลำดับกัน
ฉันมีอะแดปเตอร์รายการที่กำหนดเอง: class ResultsListAdapter extends ArrayAdapter<RecordItem> { ในเมธอด 'getView' ที่แทนที่ฉันจะพิมพ์เพื่อตรวจสอบตำแหน่งที่อยู่และไม่ว่าจะเป็น convertView หรือไม่: @Override public View getView(int position, View convertView, ViewGroup parent) { System.out.println("getView " + position + " " + convertView); ผลลัพธ์ของสิ่งนี้ (เมื่อรายการถูกแสดงครั้งแรกไม่มีการป้อนข้อมูลของผู้ใช้เป็นยัง) 04-11 16:24:05.860: INFO/System.out(681): getView 0 null 04-11 16:24:29.020: INFO/System.out(681): getView 1 android.widget.RelativeLayout@43d415d8 04-11 16:25:48.070: INFO/System.out(681): getView 2 android.widget.RelativeLayout@43d415d8 …
162 java  android  listview 

3
วิธีอัปเดต ListView บน Android แบบไดนามิก [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา บน Android ฉันจะListViewกรองตามการป้อนข้อมูลของผู้ใช้ได้อย่างไรรายการที่แสดงมีการอัปเดตตามTextViewค่าแบบไดนามิกหรือไม่ ฉันกำลังมองหาบางสิ่งเช่นนี้: ------------------------- | Text View | ------------------------- | List item | | List item | | List item | | List item | | | | | | | | | -------------------------

28
ListView ข้างใน ScrollView ไม่ได้เลื่อนบน Android
ฉันกำลังมีปัญหากับการเลื่อนภายในListView ScrollViewฉันมีกิจกรรมที่มี EditTexts บางส่วนในส่วนบนสุดแล้วโฮสต์แท็บที่มีสองแท็บที่มีหนึ่ง ListView แต่ละรายการ เมื่อเน้นมุมมอง EditText แป้นพิมพ์นุ่ม ๆ จะปรากฏขึ้นและเมื่อฉันมี ScrollView เนื้อหาจะสามารถเลื่อนได้ แต่ปัญหามาเมื่อมีรายการเพิ่มเติมใน ListViews (รายการในแท็บ) ฉันไม่สามารถเลื่อนมุมมอง ListView แม้ว่าจะมีรายการเพิ่มเติม ต่อไปนี้คือโครงร่าง XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="?backgroundImage" android:orientation="vertical"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_alignParentBottom="true" android:layout_margin="10dip" android:id="@+id/buttons"> <Button android:text="Save" android:layout_margin="2dip" android:textSize="20dip" android:id="@+id/btnSaveorUpdate" android:layout_height="wrap_content" android:layout_width="145dip"></Button> <Button android:text="Cancel" android:layout_margin="2dip" android:textSize="20dip" android:id="@+id/btnCancelorDelete" android:layout_height="wrap_content" …

9
Android Recyclerview เทียบกับ ListView กับผู้ดู
ฉันเพิ่งเจอ android RecyclerViewที่เปิดตัวพร้อมกับ Android 5.0 และดูเหมือนว่าRecyclerViewเป็นแบบดั้งเดิมที่ห่อหุ้มListViewด้วยรูปแบบ ViewHolder ที่รวมอยู่ในนั้นซึ่งส่งเสริมการนำมาใช้ใหม่ของมุมมองแทนที่จะสร้างเป็นทุกครั้ง ประโยชน์อื่น ๆ ของการใช้RecyclerViewคืออะไร? หากทั้งคู่มีผลเหมือนกันในแง่ของประสิทธิภาพเหตุใดจึงเลือกใช้ RecyclerView` แก้ไข ฉันพบว่าผู้คนได้ถามคำถามที่คล้ายกันและคำตอบไม่ได้ข้อสรุปเพิ่มพวกเขาที่นี่เพื่อเก็บบันทึก Recyclerview เทียบกับ Listview เราควรใช้ RecyclerView เพื่อแทนที่ ListView หรือไม่ ทำไม RecyclerView ไม่มี onItemClickListener () และ RecyclerView แตกต่างจาก Listview อย่างไร

7
android.content.res.Resources $ NotFoundException: ID ทรัพยากรสตริง # 0x0
ฉันกำลังพัฒนาแอพ Android ที่อ่านข้อมูลจากฐานข้อมูล MySQL และฉันพบข้อผิดพลาดนี้ ฉันมีเค้าโครง XML นี้: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/wardNumber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:text="Ward Number" android:textSize="22dp"/> <TextView android:id="@+id/dateTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/wardNumber" android:layout_alignParentRight="true" android:layout_marginRight="3dp" android:text="Date-Time" /> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/dateTime" android:layout_alignBottom="@+id/dateTime" android:layout_alignLeft="@+id/wardNumber" android:layout_marginLeft="3dp" android:text="Name" /> </RelativeLayout> และนี่คือไฟล์ Java ของฉัน: public ApplicationAdapter(Context …
145 java  android  xml  listview 

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