要实现在改变焦点后,TextInputEditText只显示文本的功能,可以使用以下方法:
TextInputEditText textInputEditText = findViewById(R.id.textInputEditText);
textInputEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
// 失去焦点时,隐藏软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
// 只显示文本
textInputEditText.setInputType(InputType.TYPE_NULL);
textInputEditText.setText(textInputEditText.getText().toString());
}
}
});
在上述代码中,当TextInputEditText失去焦点时,首先隐藏软键盘,然后将输入类型设置为InputType.TYPE_NULL,这样就只显示文本了。最后,通过setText方法将输入框中的内容重新设置为文本内容,以确保只显示文本。
注意:为了隐藏软键盘,需要在AndroidManifest.xml文件中为该Activity添加以下属性:
这样就可以实现在改变焦点后,TextInputEditText只显示文本的功能了。