ก่อนเข้าสู่ตัวอย่าง 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 = "http://schemas.android.com/apk/res/android" xmlns:tools = "http://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 ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์และคลิกไอคอนเรียกใช้จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

ตอนนี้เลื่อนดูรายการ คุณจะไม่ได้รับปัญหาสีพื้นหลังใด ๆ ดังที่แสดงด้านล่าง -
