2015-06-30 9 views

risposta

6

Si dovrebbe andare per l'uso AutoSuggestEditext e dare effetto di sfondo come google ha messo e immagine a sinistra ea destra Relativelayout

Ecco esempio per auto suggerire posto di ricerca.

Auto Place complete

Speranza da esso si capirà.

+0

Il link sembra essere rotto, potete per favore risolvere il problema . – lazywiz

+1

@lazywiz Ho aggiornato il collegamento. – Herry

12

È possibile utilizzare EditText o TextWatcher. Ho usato uno EditText e un pulsante Cerca. Con questo sul pulsante clic, cerca posizione.

Ecco il mio codice su scatto del tasto:

button1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      String g = searchview.getText().toString(); 

      Geocoder geocoder = new Geocoder(getBaseContext()); 
      List<Address> addresses = null; 

      try { 
       // Getting a maximum of 3 Address that matches the input 
       // text 
       addresses = geocoder.getFromLocationName(g, 3); 
       if (addresses != null && !addresses.equals("")) 
        search(addresses); 

      } catch (Exception e) { 

      } 

     } 
    }); 

e qui è metodo di ricerca

protected void search(List<Address> addresses) { 

    Address address = (Address) addresses.get(0); 
    home_long = address.getLongitude(); 
    home_lat = address.getLatitude(); 
    latLng = new LatLng(address.getLatitude(), address.getLongitude()); 

    addressText = String.format(
      "%s, %s", 
      address.getMaxAddressLineIndex() > 0 ? address 
        .getAddressLine(0) : "", address.getCountryName()); 

    markerOptions = new MarkerOptions(); 

    markerOptions.position(latLng); 
    markerOptions.title(addressText); 

    map1.clear(); 
    map1.addMarker(markerOptions); 
    map1.moveCamera(CameraUpdateFactory.newLatLng(latLng)); 
    map1.animateCamera(CameraUpdateFactory.zoomTo(15)); 
    locationTv.setText("Latitude:" + address.getLatitude() + ", Longitude:" 
      + address.getLongitude()); 


} 

Edited- per il codice XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.google_map.MainActivity" > 

<fragment 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 

<TextView 
    android:id="@+id/latlongLocation" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignRight="@+id/searchView1" 
    android:background="#ff058fff" 
    android:gravity="bottom" 
    android:paddingBottom="5dp" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingTop="5dp" 
    android:textColor="#ffffffff" /> 

<EditText 
    android:id="@+id/searchView1" 
    android:layout_width="250dp" 
    android:layout_height="34dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="18dp" 
    android:layout_marginTop="14dp" 
    android:hint="Search Location" 
    android:textColor="@android:color/black" 
    android:background="@android:color/white" > 
</EditText> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="28dp" 
    android:layout_height="25dp" 
    android:layout_alignBaseline="@+id/searchView1" 
    android:layout_alignBottom="@+id/searchView1" 
    android:layout_alignRight="@+id/searchView1" 
    android:background="@drawable/g_search_btn" /></RelativeLayout> 
+0

Bella risposta! Potrebbe essere migliorato includendo alcuni XML per mostrare come si sovrapporrà a EditText, ma questa è una spiegazione abbastanza chiara su come la si utilizzerà. – AdamMc331

1

Questo potrebbe aiutare qualcuno che vuole aggiungi la barra di ricerca insieme alle mappe di Google Google Places API

10

Se si desidera ottenere la vista Come Cerca Visualizza della mappa di Google. Quindi puoi usare chiunque di sotto due fantastiche librerie.

1) Floating Search View

Aggiungere di seguito dependencie al file Gradle:

compile 'com.github.arimorty:floatingsearchview:2.0.3' 

Esempio:

<com.arlib.floatingsearchview.FloatingSearchView 
      android:id="@+id/floating_search_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:floatingSearch_searchBarMarginLeft="@dimen/search_view_inset" 
      app:floatingSearch_searchBarMarginTop="@dimen/search_view_inset" 
      app:floatingSearch_searchBarMarginRight="@dimen/search_view_inset" 
      app:floatingSearch_searchHint="Search..." 
      app:floatingSearch_suggestionsListAnimDuration="250" 
      app:floatingSearch_showSearchKey="false" 
      app:floatingSearch_leftActionMode="showHamburger" 
      app:floatingSearch_menu="@menu/menu_main" 
      app:floatingSearch_close_search_on_keyboard_dismiss="true"/> 

2) SearchView

Aggiungi al di sotto dependencie al file Gradle:

compile 'com.lapism:searchview:4.0' 

Esempio:

<com.lapism.searchview.SearchView 
    android:id="@+id/searchView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

ciao, potresti aiutarmi a sapere come usarlo con Google Places? – kemdo

Problemi correlati