我创建了一个包含search view
和list view
的活动。当我试图回到main activity
时,我必须按两次button
,第一次search view
上的指针消失,第二次带我到main activity
。
如何解决?按下button
时,我需要直接进入main activity
。
setContentView(R.layout.activity_drugs);
lv= findViewById(R.id.idlistview);
searchView= findViewById(R.id.idsearch);
drugadapter= new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, data);
lv.setAdapter(drugadapter);
searchView.setOnQueryTextListener(this);
View focused = getCurrentFocus();
focused.clearFocus();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int i,
long id) {
Intent intent2=new
Intent(DrugsActivity.this,ResultDrugActivity.class);
intent2.putExtra("drug",lv.getItemAtPosition(i).toString());
intent2.putExtra("age", age11 );
intent2.putExtra("weight", weight11 );
startActivity(intent2);
}
});
boolean onQueryTextChange(String newText) {
drugadapter.getFilter().filter(newText);
return false;
}
通过阅读您的方案,希望这会对您有所帮助,如果没有发布您的代码
@Override
public void onBackPressed() {
hideKeyboard();
super.onBackPressed();
}
因此,当在我们的布局中调用onBackPressed((时,我们可以做任何我们想做的事情,比如隐藏键盘:
private void hideKeyboard() {
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mInputField.getWindowToken(), 0);
}
使用以下代码
@Override
public void onBackPressed() {
if(lv.getVisibility()==View.VISIBLE){
lv.setVisibility(View.INVISIBLE);
return;
}
super.onBackPressed();
}
希望这有帮助。