My Blog List

Android FirstAid Coding

A Small Help From a Small Heart
Powered by Blogger.

A software professional, who still likes to code, likes to blog and loves gadgets.

Monday, 26 October 2015

Custom Listview Android

MainActivity.java


package com.example.test;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
ListView listview;
UsersAdapter adapter;
ArrayList<User> dataSource = new ArrayList<User>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
createDataSource();
listview=(ListView)  findViewById(R.id.listview);

adapter = new UsersAdapter(this, dataSource);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
      User user=adapter.getItem(position);
      Toast.makeText(getBaseContext(), user.name, Toast.LENGTH_LONG).show();
                
            }
        });

}

private void createDataSource() {
User user=new User();
user.setName("Raju");
user.setAge("26");
dataSource.add(user);

user=new User();
user.setName("Rozy");
user.setAge("22");
dataSource.add(user);

user=new User();
user.setName("Meera");
user.setAge("32");
dataSource.add(user);

user=new User();
user.setName("Bibhu");
user.setAge("34");
dataSource.add(user);
user=new User();
user.setName("Prakash");
user.setAge("24");
dataSource.add(user);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar,if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public class UsersAdapter extends ArrayAdapter<User> {
// View lookup cache
private  class ViewHolder {
TextView tvName;
TextView tvAge;
}

public UsersAdapter(Context context, ArrayList<User> users) {
super(context, R.layout.item_user, users);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
User user = getItem(position);    
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder; // view lookup cache stored in tag
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.item_user, parent, false);
viewHolder.tvName = (TextView) convertView.findViewById(R.id.tvName);
viewHolder.tvAge = (TextView) convertView.findViewById(R.id.tvAge);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
// Populate the data into the template view using the data object
viewHolder.tvName.setText(user.name);
viewHolder.tvAge.setText(user.age);
// Return the completed view to render on screen
return convertView;
}
}

}

main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#E09090" />

</LinearLayout>

item_user.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:orientation="vertical" >

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Name"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="23"
        android:textSize="18sp" />

</LinearLayout>


User.java

package com.example.test;

public class User {
String name,age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}
}





1 comment:

  1. Great article! Very helpful for readers looking for clear insights. For those interested in skill development, check out best training institute in Chennai offering quality courses. Helpful information about best guest posting sites.

    ReplyDelete