Action Bar
我说的是(图片中的数字1),带有小箭头和应用程序图标的按钮,以及屏幕的左上方。当我们选择“黑色 Activity ”模板时,它会自动定义。
我的应用程序有一个非常庞大的层次结构图,现在大约有25个 Activity 。
我基本上只是显示一些教程,并且可以根据类别浏览至该教程。
现在,操作栏上的“返回”(?)按钮已经在每个屏幕上出现了,我确实希望保留它。该代码未显示任何错误,但是当我实际按下该按钮时,该应用程序停止运行。
我想要的是仅使用图像中显示的那个(数字1)按钮复制实际的后退按钮功能。
当我按它时,最上面的屏幕应该关闭,最后一个屏幕应该打开。只需关闭屏幕即可。
我试过了
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
这是使 buggy 按钮以及操作栏膨胀的功能。我试图替换整个代码,并调用“完成”功能,但是失败了。
我找不到最左上角按钮专用的功能...
我希望在触摸此按钮时关闭堆栈中最上面的屏幕(前景中的一个)。
这该怎么做 ?
最佳答案
我认为最简单的出路如下:
我假设您是从A
Activity 开始的B
Activity 。现在,您想从 Activity B
返回 Activity 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);
}
这样就可以完成您当前的 Activity 。但是,如果您有很多 Activity ,则可能必须在所有 Activity 中都执行此操作。为了节省您的精力,您可以创建一个类,称为
AbstractActivity
;扩展了Activity
。然后,您可以扩展所有其他 Activity 类以扩展该类(AbstractActivity
)。在AbstractActivity
内部,您可以放置上面的代码。因此,现在这段代码将对您的所有 Activity 均有效,并且对该功能也将对其全部实现。基本上,这种东西(Inheritance)可以在任何适用于许多类的通用功能时随时使用。如果收到任何错误,请在需要进一步帮助的情况下发布
LogCat
。希望这对您有所帮助。