Я хочу найти что-то в Asynctask, но когда пользователь нажимает кнопку Enter, возникает бесконечный цикл для события onKeyUp.
Вот мой код:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
String searchObject = tvSearch.getText().toString();
searchObject = searchObject.replaceAll(" ", "%20");
AsyncSearchRegion asr = new AsyncSearchRegion(MapActivity.this);
tvSearch.onEditorAction(EditorInfo.IME_ACTION_DONE);
asr.execute(searchObject);
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
AsyncTask :
@Override
protected ArrayList<Double> doInBackground(String... params) {
this.region = params[0];
String url = "http://maps.googleapis.com/maps/api/geocode/json?address="+region+"&sensor=false";
JSONObject obj = Utilitys.getJSONFromUrl(url);
//Parse json data
try {
String resultStatus = obj.getString("status");
if(resultStatus.equals("OK")){
JSONObject locations = obj.getJSONArray("results").getJSONObject(0).getJSONObject("geometry").getJSONObject("location");
lat = locations.getDouble("lat");
lot = locations.getDouble("lng");
}
coordArray.add(lat);
coordArray.add(lot);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return coordArray;
}
1 ответ
Думаю, проблема связана с вызовом этого метода:
tvSearch.onEditorAction(EditorInfo.IME_ACTION_DONE);
Не знаю, зачем вы отправляете это событие в поиск EditText. Если вы пытаетесь скрыть клавиатуру, используйте:
public static void hideKeyboard(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.