我说的是(图中的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);
}
这是将该错误按钮与操作栏一起膨胀的功能。我试图替换整个代码,并调用“完成”功能,但失败了。 我无法找到专门针对最左上方按钮的功能...
当触摸此按钮时,我希望堆栈中的最顶层屏幕(前景中的屏幕)关闭。 怎么做?
答案 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);
}