我正在一個android應用程序,我必須解析一個Json數組並將其調整爲自動完成文本視圖。我得到了正確的響應從我的服務器,因爲我是一個新鮮的android和Json解析我沒有得到如何解析該數組適配器,並將其添加到自動完成文本視圖。JSON數組自動完成在android的文本視圖
任何機構都可以告訴我該怎麼做。
迴應如下。
[
{
city: "bng",
area: "anagar",
id: 510000032
},
{
city: "bng",
area: "bnagar",
id: 510000021
},
{
city: "bng",
area: "cnagar",
id: 510000037
}
]
我想在自動完成文本視圖中匹配區域。
我在佈局文件中創建了自動完成文本視圖。
我這是怎麼想
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;
}
}
任何建議都讚賞...
因爲responseList在onPOST等()方法創建。我無法在我的onCreate()方法中訪問它。 – rubin
檢查我的更新代碼。 我沒有在自動完成文本視圖中獲得自動完成的文本。 – rubin
您好,您需要設置後響應列表中onPostExecute適配器添加 – Libin