【问题标题】:Android Action Bar Up ButtonAndroid 操作栏向上按钮
【发布时间】:2014-11-17 20:06:33
【问题描述】:

我有 2 个活动; A.java 和 B.java。 当我执行此代码时,我想在 B.java 中有一个操作栏向上按钮:

startActivity(new Intent(A.this, B.class));
完成();

然后我使用以下代码在活动 B.java 中创建向上按钮:

ActionBar ab = new ActionBar();
ab.setDisplayHomeAsUpEnabled(true);

我还将 Android Manifest 中活动 B 的 parentActivityName 设置为:

android:minSdkVersion="16"
...
android:parentActivityName="com.name.appname.A"

我的向上按钮出现了,但是当我点击它时,应用程序只是完成自己而不是返回到活动 A.java。

我认为这是因为“finish();”当我调用活动 B 时,我是对的吗?
有人可以帮我吗?
提前致谢!

【问题讨论】:

  • 移除finish()方法

标签: java android android-actionbar


【解决方案1】:

你想finish() 活动吗?您提供的所有步骤都是正确的,但您可以尝试此代码,而不是专门完成它。这将完成活动 B 并将自动启动/恢复活动 A。

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); }

【讨论】:

  • 是的,我想完成它,因为当应用程序返回活动 A 时,数据将在 A.java 出现时更新。我可以用你的代码吗?
  • 然后将我在上面发布的代码添加到活动 B。这将自动完成活动 B 并转到 A 并在活动 A 中您需要处理 onResume() 中的更新数据
  • 嗨,它有效!但是,如果我从活动 B(通过向上按钮)转到活动 A,他会再次打开活动 A(活动 A 打开后几秒钟)。那是因为我在活动 B 中有一个计时器,如果时间到了,活动 B 将关闭,活动 A 将进入前台(因此活动 A 关闭时活动 B 仍在运行)。当我按下向上按钮时,如何关闭整个活动 B?谢谢!
  • 没关系,这么傻的问题:finish();在 NavUtils 下方!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多