내 애플리케이션의 자동 제안에 이벤트 리스너를 트랩하려고합니다. wiki-suggest : http://en.wikipedia.org/w/api.php?action=opensearch&search=%22bike%22&limit=8&namespace=0&format=json을 사용하여 목록을 채 웁니다.Android : 자동으로 이벤트 리스너를 제안하는 방법 드롭 다운리스트
나는 모든 일을 올바르게하고 있지만 지금은 목록의 항목을 클릭하고 다음 활동으로 문자열을 가져 오려고합니다. 나는 끝났어. http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener)
그러나 그것은 내가 그것을 어떻게 구현할 수 있는지 생각하지 못한다.
자동 제안 채우기를 위해 여기에 내 코드를 붙여 넣습니다. 이 문제를 극복하는 방법을 제안하십시오.
@Override
protected String doInBackground(String... key) {
String newText = key[0];
newText = newText.trim();
newText = newText.replace(" ", "+");
try {
HttpClient hClient = new DefaultHttpClient();
HttpGet hGet = new HttpGet(
"http://en.wikipedia.org/w/api.php?action=opensearch&search="
+ newText + "&limit=8&namespace=0&format=json");
ResponseHandler<String> rHandler = new BasicResponseHandler();
data = hClient.execute(hGet, rHandler);
suggest = new ArrayList<String>();
JSONArray jArray = new JSONArray(data);
for (int i = 0; i < jArray.getJSONArray(1).length(); i++) {
String SuggestKey = jArray.getJSONArray(1).getString(i);
suggest.add(SuggestKey);
}
} catch (Exception e) {
Log.w("Error", e.getMessage());
}
runOnUiThread(new Runnable() {
public void run() {
aAdapter = new ArrayAdapter<String>(
getApplicationContext(), R.layout.item, suggest);
autoComplete.setAdapter(aAdapter);
aAdapter.notifyDataSetChanged();
}
});
return null;
}
이 내가에서 새로운 제안을 얻는 방법이다 위키 제안 : 주석에서
autoComplete = (AutoCompleteTextView) findViewById(R.id.text);
autoComplete.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable editable) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {
String newText = s.toString();
new getJson().execute(newText);
}
});
샘, 답변 해 주셔서 감사합니다. 여기 나는 json을 통해 문자열을 전달해야합니다. 지금 당장 TextChangedListener에서 TextWatcher를 사용하고 있습니다. 이를 위해 전체 TextChangedListener를 onItemClickListener로 바꾸거나 무엇을 사용해야합니까? – Anupam
JSON을 통해 String을 전달하는 코드를 게시하여이 작업을 수행하는 방법을 확인할 수 있습니다. – Sam
autoComplete = (AutoCompleteTextView) findViewById (R.id.text); \t \t autoComplete.addTextChangedListener (새 TextWatcher() { \t \t \t 공개 무효 afterTextChanged (편집 가능한) { \t \t \t \t // TODO 자동 생성 방법 스텁 \t \t \t} \t \t \t 공개 void beforeTextChanged (CharSequence s, int start, int count, \t \t \t \t \t INT 후) { \t \t \t \t // TODO 자동 생성 방법 스터브 \t \t \t} \t \t \t 공개 무효가 onTextChanged (이전의 CharSequence S, INT 개시, INT \t \t \t \t \t int count) { \t \t \t \t 문자열 newText = s.toString(); \t \t \t \t new getJson().실행 (newText); \t \t \t} \t \t}); – Anupam