7

在此处输入图像描述

操作栏

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

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

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

我尝试了什么:

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

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

这是使该错误按钮与操作栏一起膨胀的功能。我试图替换整个代码,并调用“完成”函数,但失败得很惨。我找不到专门为左上角按钮设计的功能...

我希望在触摸此按钮时关闭堆栈上最顶部的屏幕(前景中的屏幕)。这该怎么做 ?

4

2 回答 2

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可以放上面的代码。因此,现在这段代码对您的所有活动都有效,并且将为所有活动实现该功能。基本上这种东西(继承)可以在任何时候使用,当有一些通用特性适用于你的许多类时。

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

于 2013-07-14T11:12:54.287 回答
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);
}
于 2014-07-15T07:03:03.107 回答