4

i am working on an android app where i have to parse a Json array and adapt it to an auto complete text view. I am getting correct response from my server, since i am a fresher to android and Json parsing i am not getting how to parse that json array to array adapter and add it to auto complete text view.

Can any body suggest me how to do it..?

Response as follows.

[
{
city: "bng",
area: "anagar",
id: 510000032
},
{
city: "bng",
area: "bnagar",
id: 510000021
},
{
city: "bng",
area: "cnagar",
id: 510000037
}
] 

i want area to be matched in my auto complete text view.

I created auto complete text view in my layout file.

This is how i am trying

    public class MainActivity extends Activity {

     List<String> responseList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AutoCompleteTextView auto1 = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);

        new HttpGetTask().execute();

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_expandable_list_item_2, responseList);
        auto1.setAdapter(adapter);
    }

    private class HttpGetTask extends AsyncTask<Void, Void, String> {

        String URL = "http://xyz/cities.json?app_id=test";
        AndroidHttpClient mClient = AndroidHttpClient.newInstance("");

        @Override
        protected String doInBackground(Void... params) {
            HttpGet request = new HttpGet(URL);
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            try {
                return mClient.execute(request, responseHandler);
            } catch (ClientProtocolException exception) {
                exception.printStackTrace();
            } catch (IOException exception) {
                exception.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            try {
                JSONArray json = new JSONArray(result);
                Log.v("ResponseCity", result);

                responseList = new ArrayList<String>();

                for (int i = 0; i < json.length(); i++) {
                    final JSONObject e = json.getJSONObject(i);
                    String name = e.getString("area");
                    responseList.add(name);

                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if (null != mClient)
                mClient.close();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

Any suggestions are appreciated...

2 Answers 2

11

Add the response string into a List<String> like this

 List<String> responseList = new ArrayList<String>();

 for (int i = 0; i < json.length(); i++) {
    final JSONObject e = json.getJSONObject(i);
     String name = e.getString("area");
     responseList.add(name);
  }

Now, you can set the response list to AutoCompleteTextView like this

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, responseList);
 AutoCompleteTextView textView = (AutoCompleteTextView)
            findViewById(R.id.autoCompleteTextView1);
 textView.setAdapter(adapter);
Sign up to request clarification or add additional context in comments.

4 Comments

since responseList is created in onPost() method. i'm not able accessing it in my onCreate() method.
check my updated code. i am not getting auto complete texts in my auto complete text view.
Hello, you need to set the adapter in onPostExecute after response list is added
i tried in onPostExecute but " The constructor ArrayAdapter<String>(MainActivity.HttpGetTask, int, List<String>) is undefined " error i am getting
1

Android AutoCompleteTextView Example using JSON with source code. here is the examples :

https://developers.google.com/places/training/autocomplete-android

http://manishkpr.webheavens.com/android-autocompletetextview-example-json/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.