答案 0 :(得分:0)
要等待发送请求,可以使用TextWatcher的onTextChanged方法。
每次更改文本时,都可以使用系统方法System.currentTimeMillis更新变量,例如timePressed。更新后,您可以检查当前系统时间是否比上次更改文本以来超过一定时间(例如5000ms)。如果是这样,请调用发送您的API请求的方法。
请参阅以下资源以获取更多指导:
答案 1 :(得分:0)
这应该有效
// Setup The Category Autocomplete
private void setupCategoryAutocomplete() {
Call<JsonObject> call = RetrofitClientLaravel.getInstance()
.videosGetApi()
.getCategories();
call.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> call,
Response<JsonObject> response) {
JSONObject jsonObject;
try {
jsonObject = new JSONObject(new Gson().toJson(response.body()));
// Check If User Array Has Anything
JSONArray returnArray = jsonObject.getJSONArray("video_categories");
List<String> str = new ArrayList<String>();
if (!returnArray.isNull(0)) {
for (int l = 0; l < returnArray.length(); l++) {
if (returnArray.length() > 0) {
// Get The Json Object
JSONObject returnJSONObject = returnArray.getJSONObject(l);
// Get Details
String category = returnJSONObject.optString("category");
str.add(category);
}
}
}
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_list_item_1,
str.toArray(new String[]{}));
atvCategory.setAdapter(adapter1);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<JsonObject> call,
Throwable t) {
}
});