[英]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.