帮你解决为什么EditText回车后会空白?
2016-10-21 本文已影响511人
SLTPAYA
当为一个EditText控件做一个输入的时候,如果我们没有在xml属性中添加android:inputType=""时,当我们在输入框中输入文字的时候,按下回车键的时候,会发现输入框变成空白了。#####
其实原来输入的文字并没有消失,而是因为换行而将光标移动至下一行的行首了。只要我们把EditText的高度调大一点就会看到已经被换行掉了的文字了。
不过本着简单的事情复杂化,我们通过代码来进行验证吧,现在就跟着我动手实验吧。
xml文件:
<EditText
android:id="@+id/et_user_name"
android:layout_width="match_parent"
android:layout_height="40dp" />//使用40dp的高度,让文字恰好显示,如果设置的太高了,就露馅了......
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="40dp" />
MainActivity代码:
public class MainActivity extends Activity {
private EditText userName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
setListener();
}
private void initViews() {
userName = (EditText) findViewById(R.id.et_user_name);
}
private void setListener() {
userName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {//失去焦点的时候
Log.i("Text", userName.getText().toString().trim());
Toast.makeText(MainActivity.this, "" + userName.getText().toString().trim(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
上述代码作用:
当我们在第一个EditText输入框中输入文字,按下回车后,再输入文字的时候,这个时候点击到第二个EditText时,第一个输入框失去焦点就会触发事件,将第一个EditText的内容通过Toast的形式展现。
** 或者当我们在第一个输入框中输入多行文字的时候再按删除键,你会发现之前的内容也是会出现的。**
截图效果,已经换行了。只要我们在EditText的inputType属性中修改为android:inputType="text"的时候,按下回车键会发现光标将会在按下回车键的同时,出现在下一个EditText中。---非常适合输入用户名和密码的情况下啊......