1

我有一个带有多个选项卡的选项卡活动。每个选项卡都有一个与之关联的 ActivityGroup,并使用 LocalActivityManager 来处理本地活动堆栈。尽管我还没有对其进行任何广泛的调试,但这一切似乎都工作正常。

我的一些活动需要打开顶部没有 tabactivity 小部件的窗口。这对我来说似乎很简单,我把它称为任何其他活动:

Intent i = new Intent(this, ActivityLeaveTabs.class);
startActivity(i);  

老实说,一切似乎都很好,但是每次我离开 tabactivity 时,我都会收到以下警告:

无法保存哪个视图具有焦点,因为焦点视图 com.android.internal.policy.impl.PhoneWindow$DecorView@43e4a3888 没有 id

我应该提到,我是从一个活动中发送这个意图的,该活动是一个活动组的一部分,它本身代表选项卡活动中的一个选项卡。我怀疑问题出在从那里调用“startActivity(this,...”),但我使用 getParent() 尝试了一堆变体,但没有帮助。

我不清楚警告的含义或它是否真的是一个问题。任何帮助解决警告或者如果有人可以告诉我不要担心它(程序似乎工作得很好)将不胜感激!

4

1 回答 1

2

听起来这与在新活动出现时节省焦点有关。

对这个问题有一点启发。包含您活动中的DecorView所有其他视图。通常没有理由让它有一个 id (尽管您可能能够以编程方式设置一个)。由于背景是否有焦点并不是什么大问题,我认为您可以放心地忽略此警告。

一个有趣的测试是尝试通过按钮onClick或其他需要另一个视图获得焦点的东西来启动您的下一个活动,然后查看您是否仍然收到警告。

于 2011-03-15T02:58:17.783 回答