Thursday, 13 September 2018

ListView Custom Adapter Example

// activity_main.xml
<?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"
    android:orientation="vertical"
    tools:context="com.krishanandroid.listviewcustomadapter.MainActivity">

    <EditText  android:id="@+id/et_actor"
        android:layout_width="match_parent" 
       android:layout_height="wrap_content"
        android:hint="@string/enter_actor_name"
        android:textSize="16sp"
        android:gravity="center"
        android:textColor="@color/colorAccent"
        android:inputType="text"/>

    <EditText android:id="@+id/et_actress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/enter_actress_name"
        android:gravity="center"
        android:textSize="16sp"
        android:textColor="@color/colorAccent"
        android:inputType="text"/>

    <EditText  android:id="@+id/et_movie"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/enter_movie_name"
        android:gravity="center"
        android:textSize="16sp"
        android:textColor="@color/colorAccent"
        android:inputType="text"/>

    <Button android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add"
        android:id="@+id/button_add"
        android:textSize="16sp"
        android:layout_marginBottom="12dp"/>

    <ListView  android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:id="@+id/listview"></ListView>

</LinearLayout>




// Data.java
package com.krishanandroid.listviewcustomadapter;

/** * Created by user on 9/13/2018. */
public class Data {
    private String actor;
    private String actress;
    private String movie;

    // Beans class    public Data(String actor, String actress, String movie) {
        this.actor = actor;
        this.actress = actress;
        this.movie = movie;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }

    public String getActress() {
        return actress;
    }

    public void setActress(String actress) {
        this.actress = actress;
    }

    public String getMovie() {
        return movie;
    }

    public void setMovie(String movie) {
        this.movie = movie;
    }
}
// MainActivity.java
package com.krishanandroid.listviewcustomadapter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    EditText            mActor, mActress, mMovies;
    Button              mButton;
    ListView            mList;

    ArrayList<Data>     arrayList;
    MyAdapter           myAdapter;

    // inner class    class MyAdapter extends BaseAdapter{

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

        @Override        public Object getItem(int position) {
            return null;
        }

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

        @Override        public View getView(int position, View convertView, ViewGroup parent) {
            Data data = arrayList.get(position);

            View view = getLayoutInflater().inflate(R.layout.row_items,null);
            TextView tv1 = view.findViewById(R.id.t_actor);
            TextView tv2 = view.findViewById(R.id.t_actress);
            TextView tv3 = view.findViewById(R.id.t_movies);

            tv1.setText(data.getActor());
            tv2.setText(data.getActress());
            tv3.setText(data.getMovie());

            return view;
        }
    }

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

        // initialization        mActor = findViewById(R.id. et_actor);
        mActress = findViewById(R.id. et_actress);
        mMovies = findViewById(R.id. et_movie);
        mButton = findViewById(R.id. button_add);
        mList = findViewById(R.id. listview);

        arrayList = new ArrayList<Data>();
        myAdapter = new MyAdapter();
        mList.setAdapter(myAdapter);

        mButton.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                String actor_name = mActor.getText().toString();
                String actress_name = mActress.getText().toString();
                String movie_name = mMovies.getText().toString();

                Data data = new Data(actor_name, actress_name, movie_name);

                arrayList.add(data);
                myAdapter.notifyDataSetChanged(); // adapter changes
                mActor.setText(" "); // set empty after data added to list view                mActress.setText(" ");
                mMovies.setText(" ");
                mActor.requestFocus(); // cursor focus            }
        });
    }
}

Live Demo: https://www.youtube.com/watch?v=Ya5-eWg9SHI

No comments:

Post a Comment