gpt4 book ai didi

android - 如何在不将焦点设置到另一个控件的情况下移除焦点?

转载 作者:IT老高 更新时间:2023-10-28 13:08:32 24 4
gpt4 key购买 nike

我喜欢直观的 UI;每个屏幕都应该自然而隐蔽地引导用户进入应用程序的下一步。除此之外,我会努力让事情变得尽可能令人困惑和困惑。

开个玩笑:-)

我有三个 TableRow,每个都包含一个只读且不可聚焦的 EditText 控件,然后在其右侧有一个按钮。每个按钮启动相同的 Activity ,但具有不同的参数。用户在那里进行选择,子 Activity 完成,用用户的选择填充适当的 EditText

这是经典的级联值机制;每个选择都会缩小下一个选择的可用选项,等等。因此,我将禁用下每一行上的两个控件,直到当前行上的 EditText 包含一个值。

我需要按以下优先顺序做两件事之一:

  1. 单击按钮时,立即移除焦点,而不将焦点设置到其他按钮
  2. 在 Activity 开始时将焦点设置到第一个按钮

子 Activity 返回后问题出现;被点击的按钮保持焦点。

Re: 上面的#1 - 似乎没有 removeFocus() 方法或类似的方法

Re: 上面的#2 - 我可以使用 requestFocus() 将焦点设置到下一行的按钮上,这在子 Activity 返回后有效,但由于某种原因它没有不能在父 Activity 的 onCreate() 中工作。

我需要在任一方向上保持 UI 一致性——在子 Activity 完成后没有按钮具有焦点,或者每个按钮根据其在逻辑流中的位置获得焦点,包括在任何按钮之前的第一个(也是唯一的) Activity 按钮选择。

最佳答案

正如您发现的那样,使用 clearFocus() 似乎对我也不起作用(在另一个答案的评论中看到),但最终对我有用的是添加:

<LinearLayout 
android:id="@+id/my_layout"
android:focusable="true"
android:focusableInTouchMode="true" ...>

到我的最顶层布局 View (线性布局)。要从所有 Buttons/EditTexts 等中移除焦点,您可以这样做

LinearLayout myLayout = (LinearLayout) activity.findViewById(R.id.my_layout);
myLayout.requestFocus();

除非我将 View 设置为可聚焦,否则请求焦点没有任何作用。

关于android - 如何在不将焦点设置到另一个控件的情况下移除焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6117967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com