特定布局上的硬件后退按钮

时间:2013-06-10 19:35:57

标签: android back-button

我有这个问题:我有很多布局页面,每个都有一个后退按钮作为图片。这意味着当您点击该图片时,您将重定向布局屏幕,这是之前的。我只有两个活动。这是通过这个方法实现的:

public void button2 
(View button) {setContentView(R.layout.screen1);}

硬件后退按钮是否有人这样的选项?当我点击硬件后退按钮时,它会在特定的布局页面上重定向我?我尝试在此页面上说明的选项:How to handle back button in activity 但没有帮助。请问你能解释一下吗?非常感谢你。

编辑:

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setRequestedOrientation(ActivityInfoCompat.CONFIG_UI_MODE);    }

@Override
public void onBackPressed() {   
return; }

使用这些时,没有任何反应。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
    moveTaskToBack(true);
    return true;    }
return super.onKeyDown(keyCode, event);    }

使用这些时,硬件后退按钮会导致返回到android手机的主屏幕

1 个答案:

答案 0 :(得分:0)

您需要在onBackPressed()中实际执行某些操作。简单地返回将导致您对无效方法的期望: nothing

如果您的Activity是真正的第二个Activity,您可以使用Intent开始onBackPressed,如下所示:

@Override
public void onBackPressed() {
    Intent nextActivity = new Intent(this, MyNextActivity.class);
    startActivity(nextActivity);
}

但是,您的第二个“活动”可能只是当前活动的不同布局。在这种情况下,您可以模拟真实的活动:

@Override
public void onBackPressed() {
    setContentView(R.layout.my_second_activity);
}

我还建议坚持使用onBackPressed()代替onKeyDown(),除非您定位的API版本低于5。