2017-04-19 3 views
3

Ich habe versucht, Ort auf der Karte zu suchen, indem Sie Eingabe von Text bearbeiten, habe ich zwei Text bearbeiten; einer ist für den Quellort und ein anderer ist für den Zielort, wenn der Benutzer den Zielort der Quelle eingibt und zum nächsten geht (oder wir können sagen, dass der Fokus verloren ist) als "der vom Benutzer eingegebene Ort wird mit Markierung auf der Karte angezeigt".So rufen Sie eine Methode nach Text in Text bearbeiten in Android

Aber hier, wenn ich GUJRAT UNIVERSITY eingeben als GUJRAT und UNIVERSITY als unterschiedliche WERT.

et.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) { 
          // findPlaceWaypoints(); 
         } 

         @Override 
         public void afterTextChanged(Editable s) { 
          findPlaceWaypoints(); 
         } 
        }); 

aber jedes Wort suchen heißt Madhya PRADES es Madhya und PRADES und alle möglichen Wörter im Zusammenhang mit Madhya PRADES dann suchen. Ich möchte den ganzen Text als EINEN Wert, der in EDIT TEXT eingegeben wird.

Das ist meine findPlaceWaypoints Methode ist:

private void findPlaceWaypoints() { 
     String location = et.getText().toString().toLowerCase(); 
     if (location == null || location.equals("")) { 
      // Toast.makeText(getBaseContext(), "No Place is entered", Toast.LENGTH_SHORT).show(); 
      return; 
     } 
     String url = "https://maps.googleapis.com/maps/api/geocode/json?"; 
     try { 
      // encoding special characters like space in the user input place 
      location = URLEncoder.encode(String.valueOf(location), "utf-8"); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
     String address = "address=" + location; 
     String sensor = "sensor=true"; 

     // url , from where the geocoding data is fetched 
     url = url + address + "&" + sensor; 

     // Instantiating DownloadTask to get places from Google Geocoding service 
     // in a non-ui thread 
     DownloadTask downloadTask = new DownloadTask(); 

     // Start downloading the geocoding places 
     downloadTask.execute(url); 
    } 
+0

Können Sie Ihre Anfrage im Detail erklären? –

+0

Benötigen Sie es für die Suche? –

+0

Wenn Sie es im selben Edittext schreiben, wie es ist, so wie es GUJARAT UNIVERSITY ist, wie es ist. –

Antwort

0

versuchen, dies kann es hilft Ihnen:

edSearch.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) { 
       String strname = edSearch.getText().toString().toLowerCase(); 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
      } 
     }); 
+1

es immer noch jedes Wort als unterschiedlich anderen Wert, –

0

Ich glaube nicht, dass irgendetwas mit EditText zu tun hat, hat es mit dem zu tun, Geocodierung API. In der Regel wird als Antwort ein Array von Objekten (Places) wie die Vorlage darunter gesendet.

results[]: { 
types[]: string, 
formatted_address: string, 
address_components[]: { 
    short_name: string, 
    long_name: string, 
    postcode_localities[]: string, 
    types[]: string 
}, 
partial_match: boolean, 
place_id: string, 
postcode_localities[]: string, 
geometry: { 
    location: LatLng, 
    location_type: GeocoderLocationType 
    viewport: LatLngBounds, 
    bounds: LatLngBounds 
} 
} 

Diese Objekte sind alle Orte, die die Abfrage übereinstimmt (d. Madhya PRADES, Madhya, PRADES).

Was Sie für die genaue Übereinstimmung überprüfen können, ist das Feld "Partial_match" im Antwortobjekt. Es ist eine genaue Übereinstimmung, wenn partial_match falsch ist, partielle Übereinstimmung andernfalls.

Hoffe, das hilft.

Verwandte Themen