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