我想使用自定义的结束图标从材质设计的TextInputLayout获取文本。
我试图这样做:
TextInputLayout textInputCustomEndIcon = findViewById(R.id.editText);
final TextInputEditText editText = new TextInputEditText(textInputCustomEndIcon.getContext());
textInputCustomEndIcon
.setEndIconOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText.getText() != null) {
String text = editText.getText().toString();
Log.i("MainActivity", "setEndIconOnClickListener:"+ text);
}
}
});
但是我得到一个空文本,不是null而是空的!
答案 0 :(得分:1)
使用类似的东西:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/custom_end_icon"
...>
<com.google.android.material.textfield.TextInputEditText
../>
</com.google.android.material.textfield.TextInputLayout>
只需使用:
TextInputLayout textInputLayout = findViewById(R.id.custom_end_icon);
String text = textInputLayout.getEditText().getText();
您的问题在这里:
final TextInputEditText editText = new TextInputEditText(textInputCustomEndIcon.getContext());
您仅在创建TextInputEditText
的新实例,而不是TextInputEditText
内的TextInputLayout
。
答案 1 :(得分:0)
我和你有同样的问题。我只是这样解决的。在String变量中,我需要使用 .trim()
验证是否已正确插入数据。 String vname=Name.getEditText().getText().toString().trim();