如何从 material 中获取文本正确设计 TextInputLayout?
How to get text from material design TextInputLayout correctly?
我想使用自定义结束图标从 material 设计的 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);
}
}
});
但是我得到一个空文本,不是空的而是空的!!
使用类似的东西:
<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
的新实例,它不是 TextInputLayout
中的 TextInputEditText
。
我遇到了和你一样的问题。我就是这样解决的。在 String 变量中,我需要验证是否已使用 .trim()
正确插入数据
String vname=Name.getEditText().getText().toString().trim();
第一个Activity:
String uname = userV.getEditText().getText().toString();
Intent intent1 = new Intent(VolunteerActivity.this, VolunteerView.class);
intent1.putExtra("USER_NAME", uname);
startActivity(intent1);
第二个Activity:
Bundle extras = getIntent().getExtras();
if (extras != null)
{
String uname = extras.getString("USER_NAME");
tv2.setText(uname);
}
我想使用自定义结束图标从 material 设计的 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);
}
}
});
但是我得到一个空文本,不是空的而是空的!!
使用类似的东西:
<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
的新实例,它不是 TextInputLayout
中的 TextInputEditText
。
我遇到了和你一样的问题。我就是这样解决的。在 String 变量中,我需要验证是否已使用 .trim()
正确插入数据 String vname=Name.getEditText().getText().toString().trim();
第一个Activity:
String uname = userV.getEditText().getText().toString();
Intent intent1 = new Intent(VolunteerActivity.this, VolunteerView.class);
intent1.putExtra("USER_NAME", uname);
startActivity(intent1);
第二个Activity:
Bundle extras = getIntent().getExtras();
if (extras != null)
{
String uname = extras.getString("USER_NAME");
tv2.setText(uname);
}