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:
- When I click the item another activity is started.
- 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