XML : Items in LisView are not Clickable... Why ?> How to fix?

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:

  1. When I click the item another activity is started.
  2. When a long press happens a context menu is shown.

PlaceActiviy.java

      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<Place> 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("Alma Building", "Alma Street Coventry CV15QA", "52.410065", "-1.500457");  //        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 & 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);          placeslist.setTextFilterEnabled(true);          seachbar = (EditText) findViewById(R.id.searchplaces);          list = db.getAllplaces();          listAdapter = new ListAdapter(this, list, getResources());          placeslist.setAdapter(listAdapter);            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();      }        static void updatelist() {          }        @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();      }  }    

activity_palce.xml

  <?xml version="1.0" encoding="utf-8"?>  <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">        <android.support.design.widget.AppBarLayout          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:theme="@style/AppTheme.AppBarOverlay">            <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.support.design.widget.AppBarLayout>        <include layout="@layout/content_place" />        <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" />    </android.support.design.widget.CoordinatorLayout>    

content_place.xml

  <?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"      xmlns:app="http://schemas.android.com/apk/res-auto"      android:orientation="horizontal">      <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"          android:clickable="true"          android:focusable="true"/>      <android.support.design.widget.AppBarLayout          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:theme="@style/AppTheme.AppBarOverlay"          android:id="@+id/view" />        <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" />    </RelativeLayout>    

No comments:

Post a Comment