Android : Providing auto autosuggestion in android places Api?
- by user1787493
I am very new to android Google maps i write the following program for displaying the auto sugesstion in the android when i am type the text in the Autocomplete text box it is going the input to the url but the out put is not showing in the program .please see once and let me know where i am doing the mistake.
package com.example.exampleplaces;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.SyncStateContract.Constants;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AutoCompleteTextView;
import android.widget.ProgressBar;
public class Place extends Activity {
private AutoCompleteTextView mAtv_DestinationLocaiton;
public ArrayList<String> autocompletePlaceList;
public boolean DestiClick2;
private ProgressBar destinationProgBar;
private static final String GOOGLE_PLACE_API_KEY = "";
private static final String GOOGLE_PLACE_AUTOCOMPLETE_URL = "https://maps.googleapis.com/maps/api/place/autocomplete/json?";
//https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
autocompletePlaceList = new ArrayList<String>();
destinationProgBar=(ProgressBar)findViewById(R.id.progressBar1);
mAtv_DestinationLocaiton = (AutoCompleteTextView) findViewById(R.id.et_govia_destination_location);
mAtv_DestinationLocaiton.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
Log.i("Count", "" + count);
if (!mAtv_DestinationLocaiton.isPerformingCompletion()) {
autocompletePlaceList.clear();
DestiClick2 = false;
new loadDestinationDropList().execute(s.toString());
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}
private class loadDestinationDropList extends
AsyncTask<String, Void, ArrayList<String>> {
@Override
protected void onPreExecute() {
// Showing progress dialog before sending http request
destinationProgBar.setVisibility(View.INVISIBLE);
}
protected ArrayList<String> doInBackground(String... unused) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
autocompletePlaceList = getAutocompletePlaces(mAtv_DestinationLocaiton.getText().toString());
return autocompletePlaceList;
}
public ArrayList<String> getAutocompletePlaces(String placeName) {
String response2 = "";
ArrayList<String> autocompletPlaceList = new ArrayList<String>();
String url = GOOGLE_PLACE_AUTOCOMPLETE_URL + "input="
+ placeName + "&sensor=false&key="
+ GOOGLE_PLACE_API_KEY;
Log.e("MyAutocompleteURL", "" + url);
try {
//response2 = httpCall.connectToGoogleServer(url);
JSONObject jsonObj = (JSONObject) new JSONTokener(response2.trim()
.toString()).nextValue();
JSONArray results = (JSONArray) jsonObj.getJSONArray("predictions");
for (int i = 0; i < results.length(); i++) {
Log.e("RESULTS",
"" + results.getJSONObject(i).getString("description"));
autocompletPlaceList.add(results.getJSONObject(i).getString(
"description"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return autocompletPlaceList;
}
}
}