pat*_*ick 5 android focus back-button android-softkeyboard android-edittext
我知道这里有很多关于这个问题的问题.但他们中没有人能得到我正在寻找的答案.
我在ScrollView中有7个ET.当我启动应用程序时,没有ET有焦点,因为我在我的整体布局中添加了以下两行:
android:focusable="true"
android:focusableInTouchMode="true"
Run Code Online (Sandbox Code Playgroud)
当我点击ET时,会显示我想要的软键盘,然后我设置了值(比方说20).我按下'2'后跟'0'然后按后退按钮.此时键盘消失,但焦点仍然存在.当按下后退按钮隐藏键盘时,我也希望清除焦点.
因为当清除焦点时,ET的布局设置为我想要的.
他们都有一些代码,这是:
// Right Cable
RightCable = (EditText) findViewById (R.id.RightCable);
RightCable.setRawInputType(Configuration.KEYBOARD_12KEY);
RightCable.setOnFocusChangeListener(FocusChanged);
RightCable.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if(RightCable.isFocused()){
LengthRightCable = Double.parseDouble(RightCable.getText().toString());
Calculate();
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.toString().matches("")) {
RightCable.setText("0.00");
Selection.setSelection(RightCable.getText(), 0, 4);
}
}
});
Run Code Online (Sandbox Code Playgroud)
我使用焦点监听器将ET的输入更改为5.00而不是0的数字.
OnFocusChangeListener FocusChanged = new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
EditText et = (EditText) v;
et.setSelection(0, et.getText().length());
if(!hasFocus){
String userInput = et.getText().toString();
int dotPos = -1;
for (int i = 0; i < userInput.length(); i++) {
char c = userInput.charAt(i);
if (c == '.') {
dotPos = i;
}
}
if (dotPos == -1){
et.setText(userInput + ".00");
} else if(userInput.length() < 5) {
if ( userInput.length() - dotPos == 1 ) {
et.setText(userInput + "00");
} else if ( userInput.length() - dotPos == 2 ) {
et.setText(userInput + "0");
}
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
为此,您必须在布局文件的父布局上获取 onTouchListener。在 TouchListener 上,您必须编写代码以在单击 EditText 外部时隐藏键盘。请按照以下 XML 布局和 Java 类来解决此问题。
请按照以下网址解决此问题http://amitthaperandroidquery.blogspot.com/2011/10/remove-keyboard-after-click-outside.html
归档时间: |
|
查看次数: |
3325 次 |
最近记录: |