2010-11-04 73 views
1

有没有一种方法可以通过编程方式取消选择/擦除用户使用轨迹球/触控板选择的任何内容?取消选择任何轨迹球/触控板选择

当我点击一个活动的后退按钮时,它回退的活动有一个按钮,就像用户使用轨迹球/垫一样。我不确定在之前的活动中选择了什么,但显然有些事情是。我想在活动结束之前以编程方式擦除任何选择。

回答

0

翻阅JavaDoc for View我看到许多与焦点相关的功能。

void clearFocus(); // drop focus from this view. 
View findFocus(); // finds a view that is a child of this view that has focus, if any 
View focusSearch(int dir); // finds the next view that can take focus in the given direction 
void requestFocus 

听起来findFocus().clearFocus()应该做的伎俩(除非findFocus恰好返回null)...你只需要一个句柄其他活动的看法......这应该不是太难,如果它是你的代码,如果不是,则为非平凡。

如果是你的代码,看起来你可以在按钮的onClickHandler中添加一个clearFocus()。

+0

这对我来说似乎完全合乎逻辑,但由于某种原因,它不起作用。我已经尝试覆盖onBackPressed处理程序,并在调用finish()之前清除焦点。我也试着清理后台Activity的onActivityResult处理程序中的焦点。在这两种情况下,我最后都会收到一个按钮。焦点:(这只会在我在顶部Activity中输入EditText时发生。 – Andrew 2010-11-04 20:03:47

+0

我相信有一个更改焦点事件,您可以听...。您可以重写'View.onFocusChanged'和/或'View.onWindowFocusChanged'。我之前链接到的同一页上的信息。 – 2010-11-04 22:45:42