【问题标题】:I have to click the back button twice to go back to the previous activity我必须单击两次后退按钮才能返回上一个活动
【发布时间】:2018-08-21 16:29:48
【问题描述】:

我创建了一个包含search viewlist 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;
           }

【问题讨论】:

  • 没有CODE,您的CODE在哪里,我们如何为您提供帮助?
  • 尤其是onBackPressed() 中的任何代码,以防您覆盖它。
  • 请在此处发布您的活动代码和场景屏幕截图,以便我们查看。
  • @NileshRathod 添加的代码
  • @ChintakPatel 添加的代码

标签: android android-studio back-button back


【解决方案1】:

通过阅读您的场景,希望这会对您有所帮助,如果没有发布您的代码

@Override
public void onBackPressed() {

    hideKeyboard();
    super.onBackPressed();
}

因此,当我们在布局中调用 onBackPressed() 时,我们就可以做任何我们想做的事情,比如隐藏键盘:

private void hideKeyboard() {
    InputMethodManager imm = (InputMethodManager) 
        getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mInputField.getWindowToken(), 0);
}

【讨论】:

    【解决方案2】:

    使用下面的代码

    @Override
    public void onBackPressed() {
        if(lv.getVisibility()==View.VISIBLE){
          lv.setVisibility(View.INVISIBLE);
          return;
        }
        super.onBackPressed();
    }
    

    希望这会有所帮助。

    【讨论】:

    • 这种方式只是隐藏了列表视图,并在返回按钮上再按一次'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    相关资源
    最近更新 更多