我的活动中有2个editText字段,其中包含一些文字:
EditText nameText=(EditText) findViewById(R.id.update_name_text);
nameText.setText(Info.getName());
EditText phone=(EditText) findViewById(R.id.phone_number);
phone.setText(Info.getPhoneNo());
当我在设备上运行应用程序并点击nameText
字段时,会出现光标和键盘。但是,当我隐藏键盘时,键盘会消失,但光标会停留。如何使光标也不可见。
当我从nameText
按回车键时,光标移至phone
字段,键盘仍然可见。这很好。但是当我隐藏键盘或从phone
字段按回车键时,键盘会消失,但光标会停留。
在上述情况下,有没有办法(除了使用setOnEditorActionListener
)使光标不可见?
答案 0 :(得分:34)
从您需要设置的edittext中删除光标
nameText.setFocusable(false);
和可见光标集
nameText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
nameText.setFocusableInTouchMode(true);
return false;
}
});
将在edittext中显示光标...
答案 1 :(得分:12)
android:cursorVisible
或隐藏/显示光标的代码中的setCursorVisible()
,您可以使用解释here的方法来确定键盘何时出现&消失了。
答案 2 :(得分:1)
在Xml文件中您可以看到已为EditText自动添加<requestFocus>
属性。
因此,只要活动开始,您的EditText就会获得焦点。
首先删除它并尝试...
UpDated答案:
如果您不想修改nameText
字段
您可以使用
nameText.setEnabled(false);
如果你想编辑某些情况,
你可以,
nameText.setEnabled(true);
您仍然可以通过编程方式更新nameText
字段,
例如,使用nameText.setText(Info.getname());
如果您希望用户修改可见文本,则可以进行
nameText.setEnabled(true);
它会像你期望的那样工作。