【问题标题】:How to set default value for TextInputLayout in Android如何在 Android 中为 TextInputLayout 设置默认值
【发布时间】:2019-11-12 23:00:30
【问题描述】:

我在 Android 上使用 TextInputLayout from Google's Material Design。我想为文本字段设置默认文本值。

我知道我可以设置提示、帮助文本和错误消息,但我想以编程方式设置在其他情况下最终将由用户输入的默认文本值。

根据文档,您可以在技术上将内部 TextInputEditText 切换为常规 EditText,但 Google 不建议这样做。我应该探索这样做的风险还是我缺少内置的解决方案?

【问题讨论】:

  • 不清楚混淆是什么,但您在 TextInputEditText 上设置文本,就像在 XML 中使用 android:text 属性或 setText() 方法一样使用常规 EditText:在代码中。
  • @MikeM。引起混淆的原因是developer.google.com 文档以及material.io 文档没有提到包装元素或内部TextInputEditText 的android:text 属性,Android Studio 没有将其作为自动完成建议提供,并且手动输入属性caused a weird preview rendering issue。感谢您的帮助。

标签: java android material-design


【解决方案1】:

您可以在TextInputEditTest 中使用setText 方法,如下所示:

textInputEditText.setText(R.string.yourStringName);//string from resources
textInputEditText.setText("yourString");//static string

如果您想在 activityfragment 初始化时设置默认文本,您应该在 onCreate 方法中使用 setText,这是第一个回调活动和片段生命周期。

最后一件事:您可以为 TextInputEditText 而不是 TextInputLayout 设置默认文本,因为 TextInputLayout 扩展自 LinearLayout,因此它没有 text 属性。

【讨论】:

  • 谢谢!我很困惑,因为文档没有提到 setText 或 android:text 属性。
【解决方案2】:

不太确定您的用例是什么,但您可能会想到以下其中一种:

案例 1:您希望用户看到默认文本

  1. 在提示字段中写入您的默认文本。
  2. 当应用收集数据时,如果 View 没有文本,则使用默认文本。

案例 2:用户不需要看到默认文本

  1. 保持您现在的提示文本。
  2. 当应用收集数据时,如果 View 没有文本,则使用默认文本。

如果上述任何一种情况都不适合您,请说明您所寻求的用户体验。例如,您是否要在某个事件/时间后等待以使用默认文本切换提示?

【讨论】:

  • 感谢您的帮助。事实证明,您可以在内部 TextInputEditText 元素上使用 android:text 属性和 setText(),它只是没有在文档中提及或由 Android Studio 建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2011-08-31
  • 2020-12-14
相关资源
最近更新 更多