【问题标题】:How to go to previous activity optimized?如何去之前优化的活动?
【发布时间】:2014-05-13 21:27:18
【问题描述】:

您好,这是我的 MainActivity:

public class MainActivity extends ActionBarActivity implements android.view.View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button1 = (Button) findViewById(R.id.button1);
    button1.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Log.i("clicks","You Clicked B1");
    Intent i=new Intent(MainActivity.this, loginPage.class);
    startActivity(i);

}

}

我想知道当我的 loginPage 被 back 事件按下时如何返回到这个 MainActivity。

这里是登录页面:

public class loginPage extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.connexion);
}
@Override
public void onBackPressed()
{
    finish();
}

}

我不知道要在 onBackPressed 中放什么..

【问题讨论】:

  • nice 是什么意思?放个动画,比如幻灯片效果?
  • 对不起,我的英语不好,我的意思是“优化”
  • 也许通过不覆盖 onBackPressed。当您按下硬件按钮时,操作系统将自动完成您的活动(如果您尚未在上一个活动中声明完成)。如果您不需要做其他事情,您的代码中的这个被覆盖的方法似乎没用。信任操作系统。
  • 问题是当我按下返回事件时,无论有没有这个功能都没有任何反应......:/它不会回到 MainActivity
  • 它来自 AVD...谢谢!

标签: java android events sdk android-activity


【解决方案1】:

默认情况下,Android 操作系统在按下返回按钮时调用onBaskPressed(),并为当前活动调用finish()
然后,系统会自动将您重定向到上一个活动(仅当您在上一个活动中没有调用finish())。因此,您不需要重写此方法,因为操作系统会为您执行此操作。

如果按下模拟器上的硬件后退按钮没有执行任何操作,请编辑模拟器并确保通过检查启用硬件键盘存在。另外,不要使用No skin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-07
    • 2011-08-01
    • 2013-12-29
    • 2015-11-28
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多