/ / JSON array do automatycznego uzupełniania widoku tekstowego w systemie Android - Android, tablice, json, autouzupełnianie, autocompletetextview

Tablica JSON do automatycznego uzupełniania widoku tekstowego w systemie Android - Android, tablice, json, autouzupełnianie, autocompletetextview

Pracuję nad aplikacją dla systemu Android, gdzie muszęprzeanalizuj tablicę Json i dostosuj ją do automatycznego widoku pełnego tekstu. Dostaję poprawną odpowiedź z mojego serwera, ponieważ jestem świeższa dla Androida i Json parsowania, nie otrzymuję jak parsować tę tablicę jsonów do adaptera tablicowego i dodać go do automatycznego, kompletnego widoku tekstowego.

Czy jakieś ciało może mi podpowiedzieć, jak to zrobić ...?

Odpowiedź w następujący sposób.

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

Chcę, aby obszar został dopasowany w moim autouzupełnionym widoku tekstowym.

W moim pliku układu stworzyłem autouzupełniony widok tekstowy.

Tak właśnie próbuję

    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;
}
}

Wszelkie sugestie są mile widziane ...

Odpowiedzi:

9 dla odpowiedzi № 1

Dodaj ciąg odpowiedzi do List<String> lubię to

 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);
}

Teraz możesz ustawić listę odpowiedzi na AutoCompleteTextView w ten sposób

 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);

1 dla odpowiedzi nr 2

Android AutoCompleteTextView Przykład użycia JSON z kodem źródłowym. Oto przykłady:

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

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