android小功能的实现Android开发Android技术知识

帮你解决为什么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中。---非常适合输入用户名和密码的情况下啊......

截图效果,已经换行了。
上一篇下一篇

猜你喜欢

热点阅读