custom LiextView is customized ListView, To work with custom listview we need to create a layout and inflate that layout to ListView required number of time using BaseAdapter
Step 1: create new Project
step 2: create new xml(custom xml), which need to inflate to ListView
</RelativeLayout>
Step 3: create ListView in xml(drag and drop or write the following code)
</RelativeLayout>
Step 4: write following code in MainActivity.java
in this activity we need to create BaseAdapter class by extending BaseAdapter abstract class and provide implementation for four abstract methods of it
Step 1: create new Project
step 2: create new xml(custom xml), which need to inflate to ListView
custom_list_item.xml
<?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" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
/>
<TextView
android:id="@+id/custom_textView_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/imageView1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/custom_textView_artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/custom_textView_title"
android:layout_below="@+id/custom_textView_title"
android:layout_marginTop="15dp"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<TextView
android:id="@+id/custom_textView_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp" />
Step 3: create ListView in xml(drag and drop or write the following code)
activity_main.xml
<RelativeLayout 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"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
>
</ListView>
Step 4: write following code in MainActivity.java
in this activity we need to create BaseAdapter class by extending BaseAdapter abstract class and provide implementation for four abstract methods of it
MainActivity.java
package
com.swamys.customlistviewexample;
import
android.app.Activity;
import android.os.Bundle;
import android.view.View;
import
android.view.ViewGroup;
import
android.widget.AdapterView;
import
android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import
android.widget.ImageView;
import
android.widget.ListView;
import
android.widget.TextView;
import
android.widget.Toast;
public class MainActivity extends Activity {
ListView
listView;
String[]
title = { "I Want It
That Way", "Everybody",
"As Long As You Love Me",
"show me the meaning of being lonely",
"Quit Playing Games" };
"As Long As You Love Me",
"show me the meaning of being lonely",
"Quit Playing Games" };
String[]
artist = { "Backstreet
Boys",
"Backstreet
Boys",
"Backstreet Boys", "Backstreet Boys",
"Backstreet Boys" };
"Backstreet Boys", "Backstreet Boys",
"Backstreet Boys" };
String[]
duration = { "4:20", "5:10", "3:56", "2:16", "4:26" };
int images[] = { R.drawable.bsbcover, R.drawable.bsbcover,
R.drawable.bsbcover, R.drawable.bsbcover, R.drawable.bsbcover };
R.drawable.bsbcover, R.drawable.bsbcover, R.drawable.bsbcover };
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)
findViewById(R.id.listView1);
MyBaseAdaper
adaper = new MyBaseAdaper();
listView.setAdapter(adaper);
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void
onItemClick(AdapterView<?> adapterView,
View view, int position, long arg3) {
View view, int position, long arg3) {
TextView
title = (TextView) view
.findViewById(R.id.custom_textView_title);
.findViewById(R.id.custom_textView_title);
Toast.makeText(getApplicationContext(), title.getText()
.toString(), Toast.LENGTH_LONG).show();
.toString(), Toast.LENGTH_LONG).show();
}
});
}
class MyBaseAdaper extends BaseAdapter {
@Override
public int getCount() {
return title.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View
convertView,
ViewGroup parent) {
ViewGroup parent) {
View
view = getLayoutInflater()
.inflate(R.layout.custom_list_item, null);
.inflate(R.layout.custom_list_item, null);
TextView
title2 = (TextView) view
.findViewById(R.id.custom_textView_title);
TextView
artist2 = (TextView) view
.findViewById(R.id.custom_textView_artist);
TextView
duration2 = (TextView) view
.findViewById(R.id.custom_textView_duration);
ImageView
imageView = (ImageView) view
.findViewById(R.id.imageView1);
imageView.setImageResource(images[position]);
title2.setText(title[position]);
artist2.setText(artist[position]);
duration2.setText(duration[position]);
return view;
}
}
}
No comments:
Post a Comment