Di Android, ListView adalah ViewGroup yang digunakan untuk menampilkan daftar string. setiap item di ListView dapat diklik dan digulir.
AlertDialog adalah jendela kecil yang meminta pengguna untuk membuat keputusan atau memasukkan informasi tambahan. Dialog peringatan biasanya memiliki Judul, pesan, dua atau lebih tombol positif untuk mengkonfirmasi sedangkan negatif untuk menutup peringatan. Keduanya sangat berbeda dalam hal implementasi dan tujuan. Jadi pada artikel ini, kami akan menunjukkan kepada Anda bagaimana untuk membuat dan menampilkan ListView di dalam Dialog Peringatan pada Android. Ikuti langkah-langkah di bawah ini setelah IDE siap.
1 -> Buat Project Baru di Android Studio.
Navigasikan ke aplikasi > res > layout tambahkan baris kode di bawah ini ke file main_activity.xml.
2 -> Buat file xml baru kedalam layout untuk kustom alertDialog, Tambahkan ListView seperti yang ditunjukkan di bawah ini. layout ini akan ditampilkan saat button pada activity pertama di klik.
File: kustom_alertdialog.xml
3 -> Buat lagi file sebagai kustom listview yang akan menampilkan gambar dan daftar nama.
File: kustom_list.xml
4 -> Terakhir Beralih ke file MainActivity dan lihat kode berikut.
File: mainactivity.java
Coba jalankan dan hasilnya akan seperti ini:
AlertDialog adalah jendela kecil yang meminta pengguna untuk membuat keputusan atau memasukkan informasi tambahan. Dialog peringatan biasanya memiliki Judul, pesan, dua atau lebih tombol positif untuk mengkonfirmasi sedangkan negatif untuk menutup peringatan. Keduanya sangat berbeda dalam hal implementasi dan tujuan. Jadi pada artikel ini, kami akan menunjukkan kepada Anda bagaimana untuk membuat dan menampilkan ListView di dalam Dialog Peringatan pada Android. Ikuti langkah-langkah di bawah ini setelah IDE siap.
1 -> Buat Project Baru di Android Studio.
Navigasikan ke aplikasi > res > layout tambahkan baris kode di bawah ini ke file main_activity.xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Happy codx"
android:gravity="center"
android:textSize="30sp"
android:textColor="#FF000000"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="listview di dalam kustom dialog"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FF000000"/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Dialog list"
android:layout_marginTop="55dp"
android:textStyle="bold"
android:onClick="panggilDialog1"
android:id="@+id/activitymainButton1"/>
</LinearLayout>
2 -> Buat file xml baru kedalam layout untuk kustom alertDialog, Tambahkan ListView seperti yang ditunjukkan di bawah ini. layout ini akan ditampilkan saat button pada activity pertama di klik.
File: kustom_alertdialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="265dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="3dp"
android:animateLayoutChanges="true"
android:background="@drawable/background_alertdialog">
<TextView
android:id="@+id/listviewTextView"
android:layout_width="match_parent"
android:layout_height="40dp"
android:textSize="18sp"
android:text="Buah segar.."
android:gravity="center"
android:background="#FF008380"
android:textColor="#FFFFFFFF"
android:shadowRadius="11"
android:shadowColor="#FFFFFFFF"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listview1"
android:layout_below="@+id/listviewTextView"
android:layout_above="@+id/listviewTextView2">
</ListView>
<TextView
android:id="@+id/listviewTextView2"
android:text="Close"
android:textSize="16sp"
android:padding="8dp"
android:textColor="#FFFFFFFF"
android:shadowRadius="11"
android:shadowColor="#FFFFFFFF"
android:background="#FF008380"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="wrap_content"/>
</RelativeLayout>
3 -> Buat lagi file sebagai kustom listview yang akan menampilkan gambar dan daftar nama.
File: kustom_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal"
android:background="@drawable/border_bawah"
android:gravity="left|center_vertical">
<ImageView
android:id="@+id/kustom_listImageView"
android:layout_width="40dp"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:background="#FF000000"/>
<TextView
android:id="@+id/listview2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left|center"
android:textSize="16sp"
android:textColor="#FFFFFFFF"
android:textStyle="bold"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:paddingLeft="10dp"
android:background="#A7000000"
android:shadowColor="#FFFFFFFF"
android:shadowRadius="11"/>
</LinearLayout>
4 -> Terakhir Beralih ke file MainActivity dan lihat kode berikut.
File: mainactivity.java
package com.happycodx.example;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.app.AlertDialog;
import android.view.LayoutInflater;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import android.widget.ArrayAdapter;
import java.util.List;
import android.content.Context;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast;
import android.widget.ImageView;
import android.view.WindowManager;
public class MainActivity extends Activity {
ArrayList myList;
ArrayList myList2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.activitymainButton1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
panggilDialog1();
}
});
myList = new ArrayList();
myList.add("Alpukat");
myList.add("Anggur");
myList.add("Pisang");
myList.add("Jeruk Lemon");
myList.add("Manggis");
myList.add("Nanas");
myList.add("Semangka");
myList.add("Strawberry");
myList2 = new ArrayList();
myList2.add(R.drawable.ap);
myList2.add(R.drawable.gr);
myList2.add(R.drawable.ba);
myList2.add(R.drawable.lm);
myList2.add(R.drawable.mgs);
myList2.add(R.drawable.pi);
myList2.add(R.drawable.sm);
myList2.add(R.drawable.st);
}
private void panggilDialog1() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.kustom_alertDialog, null);
alertDialog.setView(convertView);
ListView listview = (ListView) convertView.findViewById(R.id.listview1);
final AlertDialog alert = alertDialog.create();
MyAdapter myadapter = new MyAdapter(MainActivity.this, R.layout.kustom_list, myList);
listview.setAdapter(myadapter);
TextView textviewClose = (TextView) convertView.findViewById(R.id.listviewTextView2);
textviewClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {alert.dismiss();} });
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
alert.dismiss();
Toast.makeText(MainActivity.this, myList.get(position), Toast.LENGTH_SHORT).show();
}
});
alert.show();
alert.getWindow().setLayout(600, 750);
}
private class ViewHolder {
TextView tvSname;
ImageView imgBuah;
}
class MyAdapter extends ArrayAdapter {
LayoutInflater inflater;
Context myContext;
List newList;
public MyAdapter(Context context, int resource, List list) {
super(context, resource, list);
myContext = context;
newList = list;
inflater = LayoutInflater.from(context);
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.kustom_list, null);
holder.tvSname = (TextView) view.findViewById(R.id.listview2);
holder.imgBuah = (ImageView) view.findViewById(R.id.kustom_listImageView);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.tvSname.setText(newList.get(position).toString());
holder.imgBuah.setImageResource(myList2.get(position));
return view;
}
}
}
Coba jalankan dan hasilnya akan seperti ini: