Menampilkan kustom ListView di dalam kustom AlertDialog

kustom ListView di kustom AlertDialog
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.


<?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:

Baca Juga
Posting Komentar (0)
Lebih baru Lebih lama