title: Why are my Items in ListView not Clickable?
body: <p>Items on my list view are not clickable I have tried to getcurrentfocus() and blocking descendants in RelativeLayout tag in content_palce.xml.
  All I want from the list is two functions:</p>
  
  <ol>
  <li>When I click the item another activity is started.</li>
  <li>When a long press happens a context menu is shown.</li>
  </ol>
  
  <p>PlaceActiviy.java</p>
  
  <pre><code>        package abdualla.com.covuninavigator;
  
  
  import android.annotation.TargetApi;
  import android.app.Fragment;
  import android.app.FragmentManager;
  import android.app.ListActivity;
  import android.content.Context;
  import android.net.Uri;
  import android.os.AsyncTask;
  import android.os.Build;
  import android.support.design.widget.FloatingActionButton;
  import android.support.design.widget.NavigationView;
  import android.support.design.widget.Snackbar;
  import android.support.v4.widget.DrawerLayout;
  import android.support.v7.app.ActionBarDrawerToggle;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.support.v7.widget.Toolbar;
  import android.text.Editable;
  import android.text.TextUtils;
  import android.text.TextWatcher;
  import android.util.Log;
  import android.view.ContextMenu;
  import android.view.LayoutInflater;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.EditText;
  import android.widget.ListView;
  import android.widget.SearchView;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import com.google.android.gms.appindexing.Action;
  import com.google.android.gms.appindexing.AppIndex;
  import com.google.android.gms.common.api.GoogleApiClient;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
  
  //Places List
  public class PlaceActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
      DBHelper db = new DBHelper(this);
      ListView placeslist;
      EditText seachbar;
      static ListAdapter listAdapter;
      static ArrayList&lt;Place&gt; list;
      /**
       * ATTENTION: This was auto-generated to implement the App Indexing API.
       * See https://g.co/AppIndexing/AndroidStudio for more information.
       */
      private GoogleApiClient client;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          //Un Comment to Build Database for First time run
  //        db.insertPlace("Alan Berry", "Coventry, West Midlands CV1 5FB", "52.407981", "-1.505527");
  //        db.insertPlace("Coventry Un*iversity College", "113A Gosftord Street Coventry CV15FB", "52.407439", "-1.500221");
  //        db.insertPlace("Bugatti", "Cox Street Coventry CV1 5FB", "52.407479", "-1.503390");
  //        db.insertPlace("Charles Ward", "Cox Street Coventry CV1 5FB", "52.408623", "-1.504856");
  //        db.insertPlace("Engineering &amp; Computing Building", "Gulson Rd, Coventry, West Midlands CV1 2JH", "52.405607", "-1.499454");
  //        db.insertPlace("Ellen Terry", "Jordan Well,Coventry CV1 5RW", "52.406883", "-1.504703");
  //        db.insertPlace("Frederick Lanchester Library", "Frederick Lanchester Building, Coventry University, Coventry, West Midlands CV1 5DD", "52.406056", "-1.500545");
  //        db.insertPlace("George Elliot", "Coventry CV15LW", "52.408217", "-1.504890");
  //        db.insertPlace("Graham Sutherland", "Gosford Street, Coventry CV1", "52.407212", "-1.502934");
  //        db.insertPlace("The Hub", "Gosford Street, Coventry, West Midlands CV1 5QP", "52.407741", "-1.504792");
  //        db.insertPlace("Jaguar Building", "Gosford Street, Coventry, West Midlands CV1 5PJ", "52.407450", "-1.500545");
  //        db.insertPlace("James Starley", "Cox Street, Coventry, West Midlands CV1 5PH", "52.407892", "-1.504065");
  //        db.insertPlace("Maurice Foss", "Maurice Foss Building, Coventry, West Midlands CV1 5PH", "52.408047", "-1.503346");
  //        db.insertPlace("Multi-Storey Car Park", "Gosford St, Coventry, West Midlands CV1 5DD", "52.406288", "-1.499699");
  //        db.insertPlace("Priory Building", "Priory Street, Coventry", "52.407351", "-1.503692");
  //        db.insertPlace("Richard Crossman", "Much Park Street,Coventry, West Midlands CV1HF", "52.406666", "-1.505438");
  //        db.insertPlace("Sir John Laing Building", "Much Park Street,Coventry, West Midlands CV1HF", "52.405879", "-1.505003");
  //        db.insertPlace("Sir William Lyons", "Gosford Street, Coventry CV1", "52.407476", "-1.499722");
  //        db.insertPlace("Student Centre", "Gulson Rd, Coventry, West Midlands CV1 2JH", "52.404984", "-1.500694");
  //        db.insertPlace("Whitefriars", "Coventry CV1 2DS", "52.405255", "-1.501582");
  //        db.insertPlace("William Morris", "Cox Street, Coventry, West Midlands CV1 5PH", "52.407892", "-1.504065");
  //        db.insertPlace("Sports Centre", "Whitefriars Lane, Coventry, West Midlands CV1 2DS", "52.405973", "-1.504225");
  //        db.insertPlace("Coventry City Council", "Earl Street, Coventry, West Midlands CV1 5RR", "52.407355", "-1.508035");
          //Un Comment to Build Database for First time run
  
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_place);
  
          Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
  
          FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
          fab.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  FragmentManager fm = getFragmentManager();
                  AddPlaceFragement addPlaceFragement = new AddPlaceFragement();
                  addPlaceFragement.show(fm, "Add Place");
              }
          });
  
  //        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  //        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
  //                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  //        drawer.setDrawerListener(toggle);
  //        toggle.syncState();
  //
  //        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
  //        navigationView.setNavigationItemSelectedListener(this);
  //      db.deleteAll();
  
  
          placeslist = (ListView) findViewById(R.id.list);
          seachbar = (EditText) findViewById(R.id.searchplaces);
          list = db.getAllplaces();
          listAdapter = new ListAdapter(this, list, getResources());
          placeslist.setAdapter(listAdapter);
  
          placeslist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) {
                  Toast.makeText(getApplicationContext(), "Position is:" + position, Toast.LENGTH_LONG);
              }
          });
  
          if(placeslist.isClickable()){
              Log.v("Clickable is ","Yes");
          }
          seachbar.addTextChangedListener(new TextWatcher() {
              @Override
              public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  
              }
  
              @Override
              public void onTextChanged(CharSequence s, int start, int before, int count) {
                  listAdapter.getFilter().filter(s.toString());
              }
  
              @Override
              public void afterTextChanged(Editable s) {
  
              }
          });
  
          registerForContextMenu(placeslist);
          // ATTENTION: This was auto-generated to implement the App Indexing API.
          // See https://g.co/AppIndexing/AndroidStudio for more information.
          client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
      }
  
      @Override
      public boolean onNavigationItemSelected(MenuItem item) {
          return false;
      }
  
      @Override
      public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
          super.onCreateContextMenu(menu, v, menuInfo);
          menu.setHeaderTitle("Select an Option");
          menu.add(0, v.getId(), 0, "Show on Map");
          menu.add(0, v.getId(), 0, "Delete");
      }
  
      @Override
      public boolean onContextItemSelected(MenuItem item) {
          AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
  
          //  info.position will give the index of selected item
          int IndexSelected=info.position;
  
          if(item.getTitle()=="Delete"){
              list.remove(IndexSelected);
              listAdapter.notifyDataSetChanged();
          }
          else if (item.getTitle()=="Show on Map"){
              Toast.makeText(getApplicationContext(),"Lat is:"+list.get(IndexSelected).getLat()+"lng is: "+list.get(IndexSelected).getLng(),Toast.LENGTH_LONG);
          }
          return super.onContextItemSelected(item);
  
      }
  
      @Override
      public void onStart() {
          super.onStart();
  
          // ATTENTION: This was auto-generated to implement the App Indexing API.
          // See https://g.co/AppIndexing/AndroidStudio for more information.
          client.connect();
          Action viewAction = Action.newAction(
                  Action.TYPE_VIEW, // TODO: choose an action type.
                  "Place Page", // TODO: Define a title for the content shown.
                  // TODO: If you have web page content that matches this app activity's content,
                  // make sure this auto-generated web page URL is correct.
                  // Otherwise, set the URL to null.
                  Uri.parse("http://host/path"),
                  // TODO: Make sure this auto-generated app deep link URI is correct.
                  Uri.parse("android-app://abdualla.com.covuninavigator/http/host/path")
          );
          AppIndex.AppIndexApi.start(client, viewAction);
      }
  
      @Override
      public void onStop() {
          super.onStop();
  
          // ATTENTION: This was auto-generated to implement the App Indexing API.
          // See https://g.co/AppIndexing/AndroidStudio for more information.
          Action viewAction = Action.newAction(
                  Action.TYPE_VIEW, // TODO: choose an action type.
                  "Place Page", // TODO: Define a title for the content shown.
                  // TODO: If you have web page content that matches this app activity's content,
                  // make sure this auto-generated web page URL is correct.
                  // Otherwise, set the URL to null.
                  Uri.parse("http://host/path"),
                  // TODO: Make sure this auto-generated app deep link URI is correct.
                  Uri.parse("android-app://abdualla.com.covuninavigator/http/host/path")
          );
          AppIndex.AppIndexApi.end(client, viewAction);
          client.disconnect();
      }
  }
  </code></pre>
  
  <p>activity_place.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="true"
      tools:context="abdualla.com.covuninavigator.PlaceActivity"&gt;
  
      &lt;android.support.design.widget.AppBarLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:theme="@style/AppTheme.AppBarOverlay"&gt;
  
          &lt;android.support.v7.widget.Toolbar
              android:id="@+id/toolbar"
              android:layout_width="match_parent"
              android:layout_height="?attr/actionBarSize"
              android:background="?attr/colorPrimary"
              app:popupTheme="@style/AppTheme.PopupOverlay"
              android:title="Places List"/&gt;
  
      &lt;/android.support.design.widget.AppBarLayout&gt;
  
      &lt;include layout="@layout/content_place" /&gt;
  
      &lt;android.support.design.widget.FloatingActionButton
          android:id="@+id/fab"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="bottom|end"
          android:layout_margin="@dimen/fab_margin"
          android:src="@android:drawable/ic_input_add" /&gt;
  
  &lt;/android.support.design.widget.CoordinatorLayout&gt;
  </code></pre>
  
  <p>content_place.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:orientation="horizontal"&gt;
      &lt;ListView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/list"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@+id/searchplaces"
          /&gt;
      &lt;android.support.design.widget.AppBarLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:theme="@style/AppTheme.AppBarOverlay"
          android:id="@+id/view" /&gt;
  
      &lt;EditText
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/searchplaces"
          android:layout_marginTop="47dp"
          android:layout_below="@+id/view"
          android:layout_alignParentLeft="true"
          android:layout_alignParentStart="true"
          android:layout_alignParentRight="true"
          android:layout_alignParentEnd="true" /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>ListAdapter.java</p>
  
  <pre><code>package abdualla.com.covuninavigator;
  
  import android.app.Activity;
  import android.content.Context;
  import android.content.DialogInterface;
  import android.content.res.Resources;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.AdapterView;
  import android.widget.BaseAdapter;
  import android.widget.Filter;
  import android.widget.Filterable;
  import android.widget.ImageView;
  import android.widget.TextView;
  
  import java.util.ArrayList;
  
  /**
   * Created by amr on 28/12/15.
   */
  public class ListAdapter extends BaseAdapter implements DialogInterface.OnClickListener, Filterable {
      private Activity activity;
      private ArrayList data;
      private static LayoutInflater inflater=null;
      public Resources res;
      Place tempValues=null;
      int i=0;
      private ArrayList&lt;Place&gt; mOriginalValues;
      private ArrayList&lt;Place&gt; mDisplayedValues;
  
      public ListAdapter(Activity a, ArrayList d,Resources resLocal){
          this.activity=a;
          this.data=d;
          this.res=resLocal;
          this.mOriginalValues = d;
          this.mDisplayedValues = d;
          inflater=(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      }
  
      @Override
      public int getCount() {
          if(data.size()&lt;=0)
              return 1;
          return data.size();
      }
  
      @Override
      public Object getItem(int position) {
          return position;
      }
  
      @Override
      public long getItemId(int position) {
          return position;
      }
  
  
  
      @Override
      public Filter getFilter() {
  
          Filter filter = new Filter() {
  
              @SuppressWarnings("unchecked")
              @Override
              protected void publishResults(CharSequence constraint,FilterResults results) {
  
                  data = (ArrayList&lt;Place&gt;) results.values; // has the filtered values
                  notifyDataSetChanged();  // notifies the data with new filtered values
              }
  
              @Override
              protected FilterResults performFiltering(CharSequence constraint) {
                  FilterResults results = new FilterResults();        // Holds the results of a filtering operation in values
                  ArrayList&lt;Place&gt; FilteredArrList = new ArrayList&lt;Place&gt;();
  
                  if (mOriginalValues == null) {
                      mOriginalValues = new ArrayList&lt;Place&gt;(mDisplayedValues); // saves the original data in mOriginalValues
                  }
  
                  /********
                   *
                   *  If constraint(CharSequence that is received) is null returns the mOriginalValues(Original) values
                   *  else does the Filtering and returns FilteredArrList(Filtered)
                   *
                   ********/
                  if (constraint == null || constraint.length() == 0) {
  
                      // set the Original result to return
                      results.count = mOriginalValues.size();
                      results.values = mOriginalValues;
                  } else {
                      constraint = constraint.toString().toLowerCase();
                      for (int i = 0; i &lt; mOriginalValues.size(); i++) {
                          String data = mOriginalValues.get(i).name;
                          if (data.toLowerCase().startsWith(constraint.toString())) {
                              FilteredArrList.add(new Place(mOriginalValues.get(i).getName(),mOriginalValues.get(i).getAddress(),mOriginalValues.get(i).getLat(),mOriginalValues.get(i).getLng()));
                          }
                      }
                      // set the Filtered result to return
                      results.count = FilteredArrList.size();
                      results.values = FilteredArrList;
                  }
                  return results;
              }
          };
          return filter;
      }
  
  
      public static class ViewHolder{
  
          public TextView name;
          public TextView address;
  
      }
  
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
          View vi = convertView;
          ViewHolder holder;
          if(convertView==null){
              vi=inflater.inflate(R.layout.place_list_item,null);
              holder=new ViewHolder();
              holder.name=(TextView)vi.findViewById(R.id.placename);
              holder.address=(TextView)vi.findViewById(R.id.address);
  
              vi.setTag(holder);
          }
          else
              holder=(ViewHolder)vi.getTag();
          if(data.size()&lt;=0)
          {
              holder.name.setText("No Places Found");
              holder.address.setText("");
  
          }
          else{
              tempValues=(Place)data.get(position);
              holder.name.setText(tempValues.getName());
              holder.address.setText(tempValues.getAddress());
  
  
          }
          vi.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
  
              }
          });
          return vi;
      }
  
  
      @Override
      public void onClick(DialogInterface dialog, int which) {
  
      }
  }
  </code></pre>
  
  <p>Update 1: </p>
  
  <p>I did add onitemclick listener but.. it didn't work. The list can be scrolled but cannot be clicked. When you click a listview is shows feedback.. If you have a clicklistener something will happen....if you don't nothing will happen but it will detect the click anyway.. That's not happening in my case. It seems thr click is not detected.</p>