Skip to main content

Creating A Customized ListView in Android

Listview is simply a group of view that displays a list of scrolling items. "Adapters" are used to insert list items to the list.By default we are able to provide only text as list items.In order to insert other attributes make a customized listview. Copy or download this javacode and try yourself.
Also see here :
java file :
public class CustomListView extends Activity {
         static final String[] items = new String[]{"Sunday","Monday","Tuesday","Wednesday",
                                           "Thursday","Friday",""Saturday"};
         ListView listview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          listview=(ListView) findViewById(R.id.list);  
          listview.setAdapter(newCustomListViewAdapter
                                        (this,items));             
          listview .setOnItemClickListener(new OnItemClickListener()
                {
            @Override
            public void onItemClick(AdapterView 
                     arg0, View arg1,int  position,long arg3)
                {
                String value = listview.getItemAtPosition(position).toString();
                System.out.println("=============>>>"+value);
                }});
               } }
xml file: (main)
< 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"
    android:background="@drawable/redbg"> 
    < ListView
        android:layout_marginTop="100dp"
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
     /> 
< /RelativeLayout> 
CustomAdapter Class:
public class CustomListViewAdapter extends ArrayAdapter {
    private final Context context;
    private final String[] values;

    public CustomListViewAdapter(Context context, String[] values)
       {
        super(context, R.layout.list_view, values);
        this.context = context;
        this.values = values;
       }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) 

     {
        LayoutInflater inflater = (LayoutInflater) context   
                                          .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.list_view, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.title);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
        textView.setText(values[position]);
        // Change icon based on name
        String s = values[position];
        System.out.println(s);
         return rowView;
    }} 
xml for customizing each row:(list_view)
   < ?xml version="1.0" encoding="utf-8"?> 
   < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" > 
   
    < ImageView
        android:id="@+id/icon"
        android:src="@drawable/heartz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" /> 

    < TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/icon"
        android:paddingBottom="10dp"
        android:textColor="#FFFFFF"
        android:textSize="16dp" /> 

< /RelativeLayout> 


Comments

Popular posts from this blog

Spannable String in Android - URL Span ,Clickable Span, Rich-Style Formatting of Textview .....

See more Android Tutorials here....... Faster Loading images in GridViews or ListViews Spannable brings lots of possibility to TextView, includes displaying various appearance of a Text and onClick callbak. The SpannableString class allows you to easily format certain pieces which are called spans of a string, by applying CharacterStyle ie,color, font, ormake it a link . Here is an example where, explained how to use spannable string to give font size, color, linking a text via clickable span and through URL Span and to strike through the text. Lets go through the example : import android.os.Bundle; import android.text.SpannableString; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.ForegroundColorSpan; import android.text.style.RelativeSizeSpan; import android.text.style.StrikethroughSpan; import android.text.style.URLSpan; import android.view.View; import android.widget.TextView; import android.widget.Toast;

Passing Images between Activities in Android

in First Activity: Intent intent=new Intent(FirstClass.this, SecondClass.class); Bundle bundle=new Bundle(); bundle.putInt("image",R.drawable.ic_launcher); intent.putExtras(bundle); startActivity(intent); in Second Acticity: Bundle bundle=this.getIntent().getExtras(); int pic=bundle.getInt("image"); v.setImageResource(pic); another method: in First Activity: Drawable drawable=imgv.getDrawable(); Bitmap bitmap= ((BitmapDrawable)drawable).getBitmap(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] b = baos.toByteArray(); Intent intent=new Intent(Passimage.this,myclass.class); intent.putExtra("picture", b); startActivity(intent); in Second Acticity: Bundle extras = getIntent().getExtras(); byte[] b = extras.getByteArray("picture"); Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.lengt

Show and Resume Android Soft-Keyboard

Code to show keyboard: InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(yourEditText,InputMethodManager.SHOW_IMPLICIT); Code resume keyboard : InputMethodManager imm = (InputMethodManager)gettSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);