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
packagecom.swamys.customlistviewexample;
importandroid.app.Activity;
import android.os.Bundle;
import android.view.View;
importandroid.view.ViewGroup;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
importandroid.widget.ImageView;
importandroid.widget.ListView;
importandroid.widget.TextView;
importandroid.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 voidonItemClick(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;
}
}
}
Komentar
Posting Komentar