AutoCompleteTextView Использование API Google Place не работает - PullRequest
1 голос
/ 24 ноября 2011

Мне нужно создать AutoCompleteTextView с помощью Google Places API. Я пробовал следующий код, но он не работает. Я не получаю никаких ошибок и не могу получить никаких предложений, таких как окно поиска Google.

Подскажите, пожалуйста, как это сделать или где я ошибаюсь.

   final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item);
   AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
   adapter.setNotifyOnChange(true);
   textView.setAdapter(adapter);
   textView.addTextChangedListener(new TextWatcher() {

   public void onTextChanged(CharSequence s, int start, int before, int count) {
   if (count%3 == 1) {
   adapter.clear();
  try {

        URL googlePlaces = new URL(
        // URLEncoder.encode(url,"UTF-8");
                "https://maps.googleapis.com/maps/api/place/autocomplete/json?input="+ URLEncoder.encode(s.toString(), "UTF-8") +"&types=geocode&language=fr&sensor=true&key=<getyourowndamnkey>");
        URLConnection tc = googlePlaces.openConnection();
        Log.d("GottaGo", URLEncoder.encode(s.toString()));
        BufferedReader in = new BufferedReader(new InputStreamReader(
                tc.getInputStream()));

        String line;
        StringBuffer sb = new StringBuffer();
        while ((line = in.readLine()) != null) {
        sb.append(line);
        }
        JSONObject predictions = new JSONObject(sb.toString());            
        JSONArray ja = new JSONArray(predictions.getString("predictions"));

            for (int i = 0; i < ja.length(); i++) {
                JSONObject jo = (JSONObject) ja.get(i);
                adapter.add(jo.getString("description"));
            }


    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  }        

 }

public void beforeTextChanged(CharSequence s, int start, int count,
  int after) {
 // TODO Auto-generated method stub

   }

public void afterTextChanged(Editable s) {

}
});

Ответы [ 2 ]

1 голос
/ 15 января 2012

Если вы создаете сообщение LogCat, подобное тому, которое вы получили для GottaGo, которое включает в себя несколько ожидаемых результатов от Places Api, это может помочь вам проверить данные, чтобы увидеть, в чем проблема.

https://maps.googleapis.com/maps/api/place/autocomplete/json?input="+ URLEncoder.encode(s.toString(), "UTF-8") +"&types=geocode&language=fr&sensor=true&key=<getyourowndamnkey>

Это ссылка, по которой вы пытаетесь перейти по URL.Вы на самом деле вставили свой код, или вы просто разместили там по умолчанию Google для этого примера?Если это так, вот почему вы не можете загрузить его.

Попробуйте вставить ссылку в браузер, она все равно должна отображать данные и сообщать вам, если есть ошибка.

0 голосов
/ 09 октября 2012

Просто измените s.toString на args [0]:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...