如何在Android应用程序中使用默认后退按钮以及添加活动进行堆叠

时间:2015-04-05 17:57:10

标签: android

我正在使用Android Studio创建一个以活动A开头的应用程序,然后按下按钮进入活动B,其中包含一些扩展到自己活动中的其他按钮。

我想使用后退按钮返回上一个活动 - 我读到的是android devs文档页面中的默认操作...但是,当我在活动B或其中一个时,我的应用程序就会退出当我按下背部时,其他人伸展它。

我认为我的问题是我没有将我的活动推向堆栈,这就是它退出的原因?因为堆栈中什么都没有?

我在同一个问题上已经阅读了很多问题,但我仍然明白。

所以如果我有两个Java类Activity A和Activity B以及一个Main。

主要使用意图启动活动A.然后通过A中的按钮,活动B将打开。现在我想按回我的设备,它会回到A.如果我按回A,它会退出。

我找到了哪些应该使用的?

 @Override
   public void onBackPressed() {
    // do something on back.
    return;
  }

我以不同方式调用了活动A和B.

A是Timer,B是aboutme_help。

计时器:

public void openAboutme(View view) {
    setContentView(R.layout.activity_aboutme_help);
}

aboutme_help:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


 public class aboutme_help extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_aboutme_help);
}


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_aboutme_help, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

       return super.onOptionsItemSelected(item);
   }
  }

也许一个示例应用程序可以指向我包含这个简单的功能。

2 个答案:

答案 0 :(得分:1)

您可以简单地设置清单文件,以便活动A是活动B的父级。因此,它会知道在按下时返回。因此,在活动B的活动部分下的清单文件中:

 android:parentActivityName="com.package.ActivityA"

ActivityA是您的java类的名称,而不是XML文件名,com.package是您的包的名称

答案 1 :(得分:0)

  

public void openAboutme(View view) { setContentView(R.layout.activity_aboutme_help); }

这样做是用新布局替换当前活动的内容。如果你在活动A中调用它,你永远不会离开活动A,所以如果它是第一个活动,后退按钮会自然关闭应用程序。

这是您在Android中开始活动的方式:

Intent i = new Intent(this, ActivityB.class);
startActivity(i);

不要忘记在清单中定义您的活动。

注1:

请遵循Java命名约定。在Java类名称是pascal case(FirstLetterOfWordIsCapital)。 AboutActivity肯定是一个更好的名字,因为通过查看类名可以看到它是一个活动。

注2:

您的教程应该首先提到如何启动另一项活动。通过教程链接更新您的问题。