title: ListView items are not clickable. why?
body: <p>I have a <code>ListView</code> that uses a customized adapter, but I can't click on the ListView Item ..</p>
  
  <p>Activity for list view ..</p>
  
  <pre><code>package com.adhamenaya.projects;
  
  import java.util.ArrayList;
  
  import android.app.Activity;
  import android.content.Context;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.view.ViewGroup;
  import android.widget.BaseAdapter;
  import android.widget.Button;
  import android.widget.Filter;
  import android.widget.Filterable;
  import android.widget.ListView;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import com.adhamenaya.classes.Place;
  
  public class PlacesListActivity extends Activity {
      private ArrayList&lt;Place&gt; places;
      private ArrayList&lt;String&gt; items;
      GridviewAdapter mAdapter;
      private ListView lvPlaces;
      private EfficientAdapter adap;
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.places_list);
          lvPlaces = (ListView) this.findViewById(R.id.lvPlaces);
          new DowanloadPlaces().execute("");
      }
      private void bindList(ArrayList&lt;Place&gt; places) {
          this.places = places;
          // Start creating the list view to show articles
          items = new ArrayList&lt;String&gt;();
          for (int i = 0; i &lt; places.size(); i++) {
              items.add(String.valueOf(places.get(i).mName));
          }
          adap = new EfficientAdapter(this);
          adap.notifyDataSetChanged();
          lvPlaces.setAdapter(adap);
      }
  
      // EfficientAdapter : to make a customized list view item
      public class EfficientAdapter extends BaseAdapter implements Filterable {
  
          // The function of inflater to convert objects from XML layout file (i.e. main.xml) to a programmable 
          LayoutInflater inflater;
          Context context;
  
          public EfficientAdapter(Context context) {
              inflater = LayoutInflater.from(context);
              this.context = context;
          }
  
          public int getCount() {
              // Get the number of items in the list
              return items.size();
          }
  
          public Object getItem(int position) {
              // To return item from a list in the given position 
              return items.get(position);
          }
  
          public long getItemId(int position) {
              // TODO Auto-generated method stub
              return 0;
          }
  
          public View getView(final int position, View convertView,ViewGroup parent) {
              ViewHolder holder;
              if (convertView == null) {
                  convertView = inflater.inflate(R.layout.adaptor_content, null);
  
                  holder = new ViewHolder();// Create an object to hold at components in the list view item
                  holder.textLine = (TextView) convertView.findViewById(R.id.textLine);
                  holder.buttonLine = (Button) convertView.findViewById(R.id.buttonLine);
                  holder.buttonLine.setOnClickListener(new OnClickListener() {
                      private int pos = position;
  
                      public void onClick(View v) {
                          places.remove(pos);
                          bindList(places);// to bind list items
                          Toast.makeText(getApplicationContext(),"Deleted successfuly :)", Toast.LENGTH_LONG).show();
                      }
                  });
                  convertView.setTag(holder);
              } else {
                  holder = (ViewHolder) convertView.getTag();
              }
              // Bind the data efficiently with the holder.
              holder.textLine.setText(String.valueOf(places.get(position).mName));
              return convertView;
          }
  
          public Filter getFilter() {
              // TODO Auto-generated method stub
              return null;
          }
  
      }
  
      // ViewHolder : class that represents a list view items
      static class ViewHolder {
          TextView textLine;
          Button buttonLine;
      }
  
      // DownloadRSSFeedsTask: works in a separate thread
      private class DowanloadPlaces extends AsyncTask&lt;String, Void, ArrayList&lt;Place&gt;&gt; {
  
          @Override
          protected ArrayList&lt;Place&gt; doInBackground(String... params) {
              ArrayList&lt;Place&gt; places = new ArrayList&lt;Place&gt;();
              Place p = new Place();
              for(int i =0;i&lt;25;i++){
                  p.mName = "Al Mathaf Hotel";
                  places.add(p);              
              }
  
              return places;
          }
  
          @Override
          protected void onPostExecute(ArrayList&lt;Place&gt; places) {
              bindList(places);
  
  
          }
  
      }
  
  
  }
  </code></pre>
  
  <p>places_list.xml layout</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"&gt;
      &lt;ListView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content"
          android:id="@+id/lvPlaces"&gt;
  
      &lt;/ListView&gt;
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>adaptor_content.xml layout</p>
  
  <p>
  </p>
  
  <p></p>
  
  <p></p>
  
  <pre><code>&lt;ImageView
      android:id="@+id/imageView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/textLine"
      android:layout_centerVertical="true"
      android:src="@drawable/settings" /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>