List View di Android Studio


hello temen2,
yuk kita buat listview di android studio

langkah pertama kita buat main activity...

package com.example.cobalistview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
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 {

    private HeroAdapter adapter;
    private String[] Nama;
    private String[] Deskripsi;

    private ArrayList<Hero> heroes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = findViewById(R.id.lv_list);
        adapter = new HeroAdapter(this);
        listView.setAdapter(adapter);

        ambilData();
        addItem();

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this, heroes.get(i).getNama(), Toast.LENGTH_LONG).show();
            }
        });
    }

    private void addItem() {
        heroes = new ArrayList<>();
        for (int i = 0; i < Nama.length; i++){
            Hero hero = new Hero();
            hero.setNama(Nama[i]);
            hero.setDeskripsi(Deskripsi[i]);
            heroes.add(hero);
        }
        adapter.setHeroes(heroes);
    }

    private void ambilData() {
        Nama = getResources().getStringArray(R.array.nama);
        Deskripsi = getResources().getStringArray(R.array.deskripsi);
    }


}

dan jangan lupa kita buat layoutnya...

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/lv_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

langkah kedua, kita membuat class pahlawan, karena kita akan membuat daftar nama2 pahlawan indonesia,

package com.example.cobalistview;

class Hero {
    private String nama;
    private String deskripsi;

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getDeskripsi() {
        return deskripsi;
    }

    public void setDeskripsi(String deskripsi) {
        this.deskripsi = deskripsi;
    }
}


dan jangan lupa kita buat layoutnya...

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">

    <TextView
        android:id="@+id/txt_nama"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="bold"
        android:text="nama"/>

    <TextView
        android:id="@+id/txt_deskripsi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txt_nama"
        android:text="deskripsi"/>

</RelativeLayout>

langkah ketiga, kita meuliskan nama pahlawan dan deskripsinya di dalam folder string
res > string...

<resources>
    <string name="app_name">CobaListView</string>

    <string-array name="nama">
        <item>Soekarno</item>
        <item>Ki Hajar Dewantara</item>
        <item>Moh Yamin</item>
        <item>Pattimura</item>
        <item>R.A. Kartini</item>
        <item>Cut Nyak Dien</item>
    </string-array>

    <string-array name="deskripsi">
        <item>Pahlawan Kemerdekaan Republik Indonesia sekaligus Menjadi Presiden Pertama Indonesia</item>
        <item>Bapak Pendidikan Indonesia Yang Mendirikan Taman Siswa</item>
        <item>Pahlawan Perumus Pancasila</item>
        <item>Pahlawan Kemerdeaan Negara Indonesia Di Ambon</item>
        <item>Pahlawan Perempuan Indonesia</item>
        <item>Pahlawan Perempuan Indonesia Di Aceh</item>
    </string-array>
</resources>

dan langkah terakhir, kita membuat adapter untuk membuat listview kita,
caranya buat class adapter di folder java...

package com.example.cobalistview;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import androidx.appcompat.view.menu.MenuView;

import java.util.ArrayList;

public class HeroAdapter extends BaseAdapter {
    private Context context;
    private ArrayList<Hero> heroes = new ArrayList<>();

    //setter hasil generate
    public void setHeroes(ArrayList<Hero> heroes){
        this.heroes = heroes;
    }

    public HeroAdapter (Context context){
        this.context = context;
    }

    @Override
    public int getCount() {
        return heroes.size();
    }

    @Override
    public Object getItem(int i) {
        return heroes.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }



    @Override
    public View getView(int i, View view, ViewGroup viewGroup){
        View itemView = view;
        if (itemView == null){
            itemView = LayoutInflater.from(context) .inflate(R.layout.item_hero, viewGroup, false);
        }

        ViewHolder viewHolder = new ViewHolder(itemView);

        Hero hero = (Hero) getItem(i);
        viewHolder.bind(hero);
        return itemView;
    }

    private class ViewHolder {
        private TextView txtNama;
        private TextView txtDeskripsi;

        ViewHolder (View view){
            txtNama = view.findViewById(R.id.txt_nama);
            txtDeskripsi = view.findViewById(R.id.txt_deskripsi);
        }
        public void bind(Hero hero) {
            txtNama.setText(hero.getNama());
            txtDeskripsi.setText(hero.getDeskripsi());
        }
    }
}

bila sudah maka akan muncul tampilan seperti dibawah ini,
selamat mencoba....




Komentar

Postingan populer dari blog ini

Relay lampu menggunakan NodeMCU

Kode program (sketch) DHT11 di Arduino Uno

Kode program ( sketch ) sensor infrared di Arduino Uno with buzzer