我说的是(图中的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);
}
这是将错误按钮与操作栏一起膨胀的功能。我试图替换整个代码,并调用“完成”功能,但失败了。我无法找到专门针对最左上方按钮的功能......
当触摸此按钮时,我希望关闭堆栈中的最顶层屏幕(前景中的一个)。这该怎么做 ?
我认为最简单的方法如下:
我假设从活动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
。希望这对你有所帮助。
只给出@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);
}