[英]SearchView to Edittext search
我是 android 初學者,我有使用 json 搜索 MySQL 數據庫並顯示結果的代碼,現在我想將 SearchView 更改為 EditText(id) 和 Button (searchbtn),當單擊搜索按鈕時,它給了我結果我該如何更改此操作它
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String query) {
final Call<List<Spacecraft>> call = myAPIService.searchSpacecraft(query);
call.enqueue(new Callback<List<Spacecraft>>() {
@Override
public void onResponse(Call<List<Spacecraft>> call, Response<List<Spacecraft>> response) {
mProgressBar.setVisibility(View.GONE);
populateListView(response.body());
}
@Override
public void onFailure(Call<List<Spacecraft>> call, Throwable throwable) {
populateListView(new ArrayList<Spacecraft>());
mProgressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this, "ERROR: "+throwable.getMessage(), Toast.LENGTH_LONG).show();
}
});
return false;
}
});
只需通過 yourEditText.getText() 從你的 editText 獲取文本; 並將值傳遞給您的請求 .. 所有這些都在 onButtonClickListener 中
按照貝爾沃代碼
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Get the value from edit text
String result = yourEdittext.getText().toString();
//Then pass the value to your request like that
final Call<List<Spacecraft>> call = myAPIService.searchSpacecraft(result);
call.enqueue(new Callback<List<Spacecraft>>() {
@Override
public void onResponse(Call<List<Spacecraft>> call, Response<List<Spacecraft>> response) {
mProgressBar.setVisibility(View.GONE);
populateListView(response.body());
}
@Override
public void onFailure(Call<List<Spacecraft>> call, Throwable throwable) {
populateListView(new ArrayList<Spacecraft>());
mProgressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this, "ERROR: "+throwable.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.