ก่อนเข้าสู่ตัวอย่าง listview เราควรทราบเกี่ยวกับ listview, Listview คือชุดของรายการที่ดึงมาจาก arraylist, list หรือฐานข้อมูลใดๆ การใช้งาน listview ส่วนใหญ่เป็นการรวบรวมรายการในรูปแบบแนวตั้ง เราสามารถเลื่อนขึ้น/ลงและคลิกที่รายการใดก็ได้
นี่เป็นวิธีแก้ปัญหาง่ายๆ เพื่อหลีกเลี่ยงไม่ให้ Background ListView กลายเป็นสีดำเมื่อเลื่อน
ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่
ขั้นตอนที่ 2 − เพิ่มโค้ดต่อไปนี้ใน res/layout/activity_main.xml
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent"> <LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical"> <ListView android:id = "@+id/list" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:cacheColorHint = "#00000000"/> </LinearLayout> </android.support.constraint.ConstraintLayout>
ใน activity_main.xml ด้านบน เราได้ประกาศ listview เพื่อหลีกเลี่ยงไม่ให้ listview พื้นหลังกลายเป็นสีดำเมื่อเลื่อน เราต้องเพิ่ม cache colorhint ไปที่ listview ดังที่แสดงด้านล่าง
<ListView android:id = "@+id/list" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:cacheColorHint = "#00000000"/>
ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ไปที่ src/MainActivity.java
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView list = findViewById(R.id.list); ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("JAVA"); arrayList.add("ANDROID"); arrayList.add("C Language"); arrayList.add("CPP Language"); arrayList.add("Go Language"); arrayList.add("AVN SYSTEMS"); arrayList.add("JAVA"); arrayList.add("ANDROID"); arrayList.add("C Language"); arrayList.add("CPP Language"); arrayList.add("Go Language"); arrayList.add("AVN SYSTEMS"); arrayList.add("JAVA"); arrayList.add("ANDROID"); arrayList.add("C Language"); arrayList.add("CPP Language"); arrayList.add("Go Language"); arrayList.add("AVN SYSTEMS"); arrayList.add("JAVA"); arrayList.add("ANDROID"); arrayList.add("C Language"); arrayList.add("CPP Language"); arrayList.add("Go Language"); arrayList.add("AVN SYSTEMS"); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList); list.setAdapter(arrayAdapter); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String clickedItem = (String) list.getItemAtPosition(position); Toast.makeText(MainActivity.this, clickedItem, Toast.LENGTH_LONG).show(); } }); } }
ใน mainActivity เราได้จัดเก็บรายการไว้ใน arraylist และเพิ่ม array ไปยัง listview ดังที่แสดงด้านล่าง
ArrayAdapter <String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList); list.setAdapter(arrayAdapter);
เมื่อคุณคลิกที่รายการ มันจะแสดงชื่อของรายการที่เราได้เพิ่มไว้บนItemclickListenerดังที่แสดงด้านล่าง
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String clickedItem = (String) list.getItemAtPosition(position); Toast.makeText(MainActivity.this,clickedItem,Toast.LENGTH_LONG).show(); } });
ไม่จำเป็นต้องเปลี่ยนไฟล์รายการ มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ หากต้องการเรียกใช้แอปจาก Android Studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์และคลิกไอคอนเรียกใช้จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ
ตอนนี้เลื่อนดูรายการ คุณจะไม่ได้รับปัญหาสีพื้นหลังใด ๆ ดังที่แสดงด้านล่าง -