我有一个线性布局(LinearLayout),其中有几个编辑文本(EditText),它们都是通过编程方式创建的(不是用XML布局),尤其是没有id。
当我在其中一个EditText
中键入,并且下一个(各自对焦)被禁用,并且我按下键盘上的Next IME按钮时,焦点前进到禁用的EditText
,但我不能在其中键入任何内容。
我所期望的是焦点前进到下一个启用的编辑文本。除了通过EditText禁用EditText之外,我还尝试了。setEnabled(false),通过编辑文本禁用其聚焦性。setFocusable(false)和编辑文本。setFocusableInTouchMode(false),并设置输入类型为NULL,但无效。
有什么提示吗?
感谢;)
看见
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
这是从http://developer.android.com/training/keyboard-input/style.html#Action。
如果您能够找出如何关注下一个文本视图,您可以向每个文本视图添加一个编辑动作监听器,如果它被禁用,则让它将焦点传递给下一个。
我解决了将可聚焦属性设置为false,而不仅仅是启用的属性:
editText.setEnabled(false);
editText.setFocusable(false);
通过检查键盘如何从这篇博文中找到下一个可聚焦的,并通过子类化EditText
来解决:
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.EditText;
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyEditText(Context context) {
super(context);
}
@Override
public View focusSearch(int direction) {
View v = super.focusSearch(direction);
if (v != null) {
if (v.isEnabled()) {
return v;
} else {
// keep searching
return v.focusSearch(direction);
}
}
return v;
}
}
更多细节:
ViewGroup
focusSearch()的实现使用FocusFinder,该FocusFinder调用
addFocusables()
。视图组的实现测试可见性,而视图的实现测试聚焦性。这两个测试都不是针对启用状态的,这就是为什么我在上面的MyEditText中添加了这个测试。
这是我的代码: 我所要做的就是使esc按钮与backspace按钮完全相同。所以我想删除
问题内容: 我有一个“保存”按钮,我想与软键盘一起向上推。因此,当用户单击我的布局中的EditText时,按钮必须保持在键盘上方。现在,该按钮将隐藏在键盘下方。你怎么做到这一点? 提前致谢! 问题答案: 您需要将键盘的输入模式设置为。您可以这样做,将以下行添加到清单中您的活动属性中: 这是在活动中添加的属性的示例:
我有一个编辑文本,我想自己处理输入,所以我不想在我点击它时(或者当选择改变、焦点改变、长时间点击等)软键盘出现。但是,我仍然希望能够选择文本、更改光标位置、复制/过去等。 我曾尝试将Android系统:windowSoftInputMode=“stateAllwayshidden”放入清单中,但似乎效果不大。我还尝试添加以下内容 这会禁用键盘,但也会阻止光标工作。 目前,我基本上是在尝试为键盘可能
我正在尝试调整图像按钮正下方的软键盘,但它覆盖了图像按钮,使其无法单击。当用户单击编辑文本时,我希望按钮位于软键盘的正上方。我尝试过使用,但它似乎不起作用。 下面是我的布局。xml文件 在AndroidManifest中。我拥有的xml文件
我以编程方式生成了许多按钮(一些按钮用于增加值,而另一些按钮用于减少值),当它们调整的值达到最大值或最小值时,我会禁用这些按钮。(即,当达到最大值时,“增加”按钮被禁用,而当达到最小值时,“减少”按钮被禁用。)除了禁用,我还将按钮状态设置为“按下”,以直观地指示已达到极限值,并且按钮不再工作。 我的按钮onClickListener的'增加'按钮看起来像这样: ClickListeners上相应的
我在做计算器。所以我制作了自己的带有数字和函数的