사용자가 AutoCompleteTextView를 입력 할 때 웹 서비스에서 결과를 가져 와서 상자에 표시하고 싶습니다. ArrayList 변경 후 Android AutoCompleteTextView 어댑터가 업데이트되지 않음
이 들어 나는ArrayAdapter<String> adapter;
autoCompleteText;
ArrayList<String> searchList;
내에서 onCreate에 넣고 세계적 선언(). searchList는 웹 서비스에서 결과를 가져올 ArrayList입니다. 검색()은 내 웹 서비스 검색입니다. 사용자가 필드에 TextWatcher를 사용하기 위해 최소 3 자 이상을 입력 한 후 검색하고 싶습니다. 검색에서
adapter = new ArrayAdapter<String>(MyActivity.this
, android.R.layout.simple_list_item_1, searchList);
autoCompleteText.setAdapter(adapter);
autoCompleteText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (s.length() >= 3) {
new Search().execute(null, null, null);
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
});
방법은() - 내 searchList
@Override
protected void onPostExecute(final Void unused) {
dlg.dismiss();
if (result != null) {
try {
JSONObject myJson = new JSONObject(result.substring(4));
JSONObject resp = myJson.getJSONObject("response");
for (Iterator<String> iterator = resp.keys(); iterator.hasNext();) {
String key = iterator.next();
System.out.println(key + " = " + resp.getString(key));
if(! searchList.contains(resp.getString(key)))
searchList.add(resp.getString(key));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
내가 ArrayAdapter와를 사용하는 것을 선호 아닌 CustomAdapter 업데이트 AsyncTask를에 요청을 GET. 어떤 아이디어?
참조 [링크] (http://stackoverflow.com/a/15383600/4385913). –
정말 좋습니다. 하지만 초보자이기 때문에 통합하는 방법을 이해할 수 없습니다. –