操作栏上的“后退”按钮 - Android。怎么去“回来”?

时间:2013-07-14 10:28:36

标签: java android eclipse button action

enter image description here

Action Bar

我说的是(图中的1号),带有小箭头的按钮,应用程序图标和屏幕的左上角。当我们选择“黑色活动”模板时会自动定义它。

我的应用程序有一个非常庞大的层次结构图,现在有大约25个活动。 我基本上只是展示了一些教程,可以根据类别导航到它。

现在每个屏幕上都有动作栏上的“后退”(?)按钮,我确实希望保留它。代码显示没有错误,但当我实际按下该按钮时,应用程序停止工作。 我想要的是用我在图像中显示的那个(Number 1)按钮复制实际的后退按钮功能。 当我按下它时,最顶部的屏幕应该关闭,最后一个屏幕应该打开。关闭屏幕。

我尝试了什么:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:

            NavUtils.navigateUpFromSameTask(this);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

这是将该错误按钮与操作栏一起膨胀的功能。我试图替换整个代码,并调用“完成”功能,但失败了。 我无法找到专门针对最左上方按钮的功能...

当触摸此按钮时,我希望堆栈中的最顶层屏幕(前景中的屏幕)关闭。 怎么做?

2 个答案:

答案 0 :(得分:31)

我认为最简单的方法如下:

我假设您从活动A开始活动B。现在,从活动B开始,您需要按操作栏上的左上方按钮返回活动A。只需从那里拨打this.finish()ActivityName.this.finish()

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            this.finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

这应该完成您当前的活动。但是,如果您有很多活动,那么您可能必须在所有活动中执行此操作。为了避免这种努力,你可以让一个类叫它AbstractActivity;延伸Activity。然后,您可以扩展所有其他活动类以扩展该类(AbstractActivity)。在AbstractActivity内,您可以输入上述代码。所以现在这段代码对你的所有活动都有效,并且将为所有这些活动实现该功能。基本上这种事情(Inheritance)可以在任何时候使用,当有一些常见的功能适用于你的许多类。

如果您收到任何错误,请发送LogCat,如果您需要进一步的帮助。 希望这对你有所帮助。

答案 1 :(得分:4)

只提供@shobhit puri给出的基本代码......

用于调用操作栏后退按钮..在onCreate()方法中添加以下代码以及onOptionsItemSelected ....

protected void onCreate(Bundle savedInstanceState) 
{
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true);
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_information);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        this.finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}