Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะสร้าง Horizontal ListView ใน Android ได้อย่างไร?


ตัวอย่างนี้สาธิตวิธีการสร้าง Horizontal ListView ใน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

กรุณาเพิ่มการพึ่งพาด้านล่างใน Gradle -

การใช้งาน 'com.android.support:recyclerview-v7:28.0.0'implementation 'com.android.support:cardview-v7:28.0.0'

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

 

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

<ก่อนหน้า>นำเข้า androidx.appcompat.app.AppCompatActivity;นำเข้า androidx.recyclerview.widget.LinearLayoutManager;นำเข้า androidx.recyclerview.widget.RecyclerView;นำเข้า android.os.Bundle;นำเข้า java.util.ArrayList;นำเข้า java.util.Arrays;คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { RecyclerView recyclerView; RecyclerView.LayoutManager layoutManager; RecyclerView.Adapter อะแด็ปเตอร์; ArrayList numberName; ArrayList<จำนวนเต็ม> numberImage; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); numberName =new ArrayList<>(Arrays.asList("Four...", "Nine... ", "Seven...", "Six...", "Ten...", "สาม.. .", "สอง...")); numberImage =ใหม่ ArrayList<>(Arrays.asList(R.drawable.four, R.drawable.nine, R.drawable.seven,R.drawable.six, R.drawable.ten, R.drawable.three, R.drawable .สอง)); // เรียก RecyclerView recyclerView =findViewById(R.id.recyclerView); recyclerView.setHasFixedSize (จริง); // จำนวนคอลัมน์ layoutManager =ใหม่ LinearLayoutManager (นี่, LinearLayoutManager.HORIZONTAL, เท็จ); recyclerView.setLayoutManager (layoutManager); อะแดปเตอร์ =MyAdapter ใหม่ (MainActivity.this, numberName, numberImage); recyclerView.setAdapter (อะแดปเตอร์); }}

ขั้นตอนที่ 4 − สร้างคลาส java (MyAdapter.java) และเพิ่มรหัสต่อไปนี้ -

นำเข้า android.content.Context;นำเข้า android.content.Intent;นำเข้า android.view.LayoutInflater;นำเข้า android.view.View;นำเข้า android.view.ViewGroup;นำเข้า android.widget.ImageView;นำเข้า android.widget TextView;นำเข้า android.widget.Toast;นำเข้า java.util.ArrayList;นำเข้า androidx.recyclerview.widget.RecyclerView;คลาส MyAdapter ขยาย RecyclerView.Adapter { ArrayList ส่วนตัวnumberName; ArrayList ส่วนตัว<จำนวนเต็ม> numberImage; บริบทบริบทส่วนตัว MyAdapter (บริบทบริบท ArrayList  numberName, ArrayList numberImage) { super (); this.context =บริบท; this.numberName =numberName; this.numberImage =numberImage; } @ แทนที่ ViewHolder สาธารณะ onCreateViewHolder (ViewGroup viewGroup, int i) { View v =LayoutInflater.from (viewGroup.getContext ()) .inflate (R.layout.gridlayout, viewGroup, เท็จ); ส่งคืน ViewHolder ใหม่ (v); } @แทนที่โมฆะสาธารณะ onBindViewHolder (ViewHolder viewHolder, int i) { viewHolder.textView.setText (numberName.get (i)); viewHolder.imgThumbnail.setImageResource(numberImage.get(i)); มุมมองโฮลเดอร์.imgThumbnail.setImageResource(numberImage.get(i)); viewHolder.setClickListener (ItemClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดูมุมมอง ตำแหน่ง int isLongClick บูลีน) { ถ้า (isLongClick) { Toast.makeText (บริบท "#" + ตำแหน่ง + " - " + numberName.get ( position) + " (Longclick)", Toast.LENGTH_SHORT).show(); context.startActivity(new Intent(context, MainActivity.class)); } else { Toast.makeText(บริบท, "#" + ตำแหน่ง + " - " + numberName.get(ตำแหน่ง), Toast.LENGTH_SHORT).show(); } } }); } @Override สาธารณะ int getItemCount () { ส่งคืน numberName.size (); } คลาสคงที่สาธารณะ ViewHolder ขยาย RecyclerView.ViewHolder ใช้ View.OnClickListener, View.OnLongClickListener { ImageView imgThumbnail; TextView textView; รายการ ClickListener ส่วนตัว clickListener; ViewHolder (ดู itemView) { super (itemView); imgThumbnail =itemView.findViewById(R.id.imgThumbnail); textView =itemView.findViewById (R.id.textView); itemView.setOnClickListener(นี้); itemView.setOnLongClickListener(นี้); } เป็นโมฆะ setClickListener (ItemClickListener itemClickListener) { this.clickListener =itemClickListener; } @แทนที่โมฆะสาธารณะ onClick (ดูมุมมอง) { clickListener.onClick (ดู, getPosition (), เท็จ); } @แทนที่บูลีนสาธารณะ onLongClick (ดูมุมมอง) { clickListener.onClick (ดู, getPosition () จริง); คืนค่าจริง; } }}

ขั้นตอนที่ 5 − สร้างไฟล์ทรัพยากรเลย์เอาต์และโค้ดต่อไปนี้ในรายการ

      

ขั้นตอนที่ 6 − สร้างอินเทอร์เฟซ (ItemClickListener.java) และเพิ่มรหัสต่อไปนี้ -

นำเข้า android.view.View; อินเทอร์เฟซ ItemClickListener { โมฆะ onClick (ดูมุมมอง, ตำแหน่ง int, isLongClick บูลีน); }

ขั้นตอนที่ 7 − เพิ่มรหัสต่อไปนี้ใน androidManifest.xml

     <หมวดหมู่ android:name=" android.intent.category.LAUNCHER" />  

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิก Run จะสร้าง Horizontal ListView ใน Android ได้อย่างไร? ไอคอนจากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -

จะสร้าง Horizontal ListView ใน Android ได้อย่างไร?