Showing posts with label list. Show all posts
Showing posts with label list. Show all posts

Sunday, May 13, 2012

Search in Custom ListView On Button Click Example


Search in Custom ListView On Button Click Example


SEARCH IN CUSTOM LISTVIEW ON BUTTON CLICK

SOURCE CODE [main.xml] is

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <Button android:text="Search"
android:id="@+id/Button01"
                                android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
                                android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>

                <EditText android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
android:text="" android:id="@+id/EditText01"
                                android:layout_toLeftOf="@+id/Button01">
</EditText>

                <ListView android:layout_height="wrap_content"
                                android:layout_below="@+id/EditText01"
android:layout_width="wrap_content"
                                android:id="@+id/ListView01">
</ListView>
                                
</RelativeLayout>

SOURCE CODE [listview.xml] is

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_height="wrap_content"
android:gravity="left|center"
                android:layout_width="fill_parent"
android:paddingBottom="5px"
                android:background="#fff200"
                android:paddingTop="5px"
android:paddingLeft="5px">

                <ImageView android:id="@+id/ImageView01"
                                android:layout_width="wrap_content"
android:layout_height="wrap_content">
                </ImageView>

                <TextView android:id="@+id/TextView01"
                                android:layout_width="wrap_content"
android:layout_height="wrap_content"
                                android:textSize="20px"
                                android:textStyle="bold"
                                android:layout_marginLeft="10px"
android:textColor="#0099CC">
                </TextView>

</LinearLayout>


SOURCE CODE [CustomListViewSearchOnButtonClick.java] is

package com.CustomListViewSearchOnButtonClick;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class CustomListViewSearchOnButtonClick extends Activity
{
                EditText edittext;
                ListView listview;
                Button search;

                String[] text = { "One", "Two", "Three", "Four", "Five", "Six", "Seven",
                                                                "Eight", "Nine", "Ten" };

                int[] image = { R.drawable.one, R.drawable.two, R.drawable.three,
                                                R.drawable.four, R.drawable.five, R.drawable.six, R.drawable.seven,
                                                R.drawable.eight, R.drawable.nine, R.drawable.ten };
                int textlength = 0;
                ArrayList<String> text_sort = new ArrayList<String>();
                ArrayList<Integer> image_sort = new ArrayList<Integer>();

                public void onCreate(Bundle savedInstanceState)
{

                                super.onCreate(savedInstanceState);
                                setContentView(R.layout.main);

                                search = (Button) findViewById(R.id.Button01);

                                edittext = (EditText) findViewById(R.id.EditText01);
                                listview = (ListView) findViewById(R.id.ListView01);
                                listview.setAdapter(new MyCustomAdapter(text, image));

                                search.setOnClickListener(new OnClickListener()
{

                                                public void onClick(View v)
{

                                                                textlength = edittext.getText().length();
                                                                text_sort.clear();
                                                                image_sort.clear();

                                                                for (int i = 0; i < text.length; i++)
{
                                                                                if (textlength <= text[i].length())
{
                                                                                                if (edittext.getText().toString().
equalsIgnoreCase((String) text[i].subSequence(0, textlength)))
{
                                                                                                                text_sort.add(text[i]);
                                                                                                                image_sort.add(image[i]);
                                                                                                }
                                                                                }
                                                                }

                                                                listview.setAdapter(new MyCustomAdapter(text_sort, image_sort));

                                                }

                                });

                }

                class MyCustomAdapter extends BaseAdapter
{

                                String[] data_text;
                                int[] data_image;

                                MyCustomAdapter()
{

                                }

                                MyCustomAdapter(String[] text, int[] image)
{
                                                data_text = text;
                                                data_image = image;
                                }

                                MyCustomAdapter(ArrayList<String> text, ArrayList<Integer> image)
{
                                                data_text = new String[text.size()];
                                                data_image = new int[image.size()];

                                                for (int i = 0; i < text.size(); i++) {
                                                                data_text[i] = text.get(i);
                                                                data_image[i] = image.get(i);
                                                }

                                }

                                public int getCount()
{
                                                return data_text.length;
                                }

                                public String getItem(int position)
{
                                                return null;
                                }

                                public long getItemId(int position)
{
                                                return position;
                                }

                                public View getView(int position, View convertView, ViewGroup parent)
{

                                                LayoutInflater inflater = getLayoutInflater();
                                                View row;

                                                row = inflater.inflate(R.layout.listview, parent, false);

                                                TextView textview = (TextView) row.findViewById(R.id.TextView01);
                                                ImageView imageview = (ImageView) row
                                                                                .findViewById(R.id.ImageView01);

                                                textview.setText(data_text[position]);
                                                imageview.setImageResource(data_image[position]);

                                                return (row);

                                }
                }
}

The OUTPUT will be

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2sM3_hQLdaLnfHoJ01xrVZ-6Nx7ZvDaBUn51oxqKGMARS1TyV3oN__HScFZ0boh0fPKIlJiSdwIrlNNxUkfQcprjjWEzpbkqJ7rU7-4c92twTtLw9-dtedqhB2lJg5Z07UOhJWLIGHoI/s480/custom_listview_search_on_buttonclick1.png 

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVOP-o_2xsA2Qe5k-Pk2-kApoZ_KGEPjV4erSW8XIyOUrhuh6S3LsFhXUKiYr8F_ir-L3FVqTFA1lEtZld_2lfRcBGnz09LvTSifurRgu1aAcYwdzzC4xeoh6nStf-dmIv523B45k_zq0/s480/custom_listview_search_on_buttonclick2.png