how to add text and image in listview by adapter android

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginLeft="5px"
        android:layout_marginRight="20px"
        android:layout_marginTop="5px"
        android:src="@drawable/windowsmobile_logo" >
    </ImageView>

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="30px" >
    </TextView>

</LinearLayout>

MainActivity.java:

import com.mkyong.android.adaptor.MobileArrayAdapter;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;
import android.view.View;

public class ListMobileActivity extends ListActivity {

 static final String[] MOBILE_OS =
               new String[] { "Android", "iOS", "WindowsMobile", "Blackberry"};

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  setListAdapter(new MobileArrayAdapter(this, MOBILE_OS));

 }

 @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {

  //get selected items
  String selectedValue = (String) getListAdapter().getItem(position);
  Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();

 }

}

ArrayAdapter.java:

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MobileArrayAdapter extends ArrayAdapter<String> {
 private final Context context;
 private final String[] values;

 public MobileArrayAdapter(Context context, String[] values) {
  super(context, R.layout.list_mobile, 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_mobile, parent, false);
  TextView textView = (TextView) rowView.findViewById(R.id.label);
  ImageView imageView = (ImageView) rowView.findViewById(R.id.logo);
  textView.setText(values[position]);

  // Change icon based on name
  String s = values[position];

  System.out.println(s);

  if (s.equals("WindowsMobile")) {
   imageView.setImageResource(R.drawable.windowsmobile_logo);
  } else if (s.equals("iOS")) {
   imageView.setImageResource(R.drawable.ios_logo);
  } else if (s.equals("Blackberry")) {
   imageView.setImageResource(R.drawable.blackberry_logo);
  } else {
   imageView.setImageResource(R.drawable.android_logo);
  }

  return rowView;
 }
}

output:



Comments

Popular posts from this blog

how to fetch blob image gallery in php html sql

how to save image to pdf in android

How to create album view with fancybox slider view in html php complete code