1

我正在尝试在 EditText 字段中使用 Android 的自动填充功能,以在键盘顶部向用户提供使用与其设备/帐户关联的电话号码的建议,如下图所示。

我尝试将 xml 文件添加android:autofillHints="phone"android:autofillHints="phoneNumber"布局的 xml 文件中。这两个选项都导致出现此“密码”按钮的左侧屏幕截图。(我还在实际设备而不是模拟器上测试了这段代码)

要查看我是否没有正确使用自动填充,或者这是否是设备/帐户问题,我尝试将代码更改为android:autofillHints="emailAddress". 这导致正确的屏幕截图显示了帐户的电子邮件地址(为保护隐私而编辑)。这使我相信我的帐户中可能没有保存电话号码,或者这就是为什么它默认为“密码”的原因。

我的问题是:

  1. 为什么会出现这个“密码”字段?
  2. 如果用户的帐户中没有电话号码,我如何隐藏“密码”字段?(如果是这个原因)
  3. 有没有更好的方法来做到这一点?

任何帮助将不胜感激。

自动填充结果

这是编辑文本的 xml 代码:

<EditText
    android:id="@+id/appt_type_phone_number_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:autofillHints="phone"
    android:importantForAutofill="yes"
    android:background="@android:color/transparent"
    android:ems="10"
    android:hint="@string/enter_phone_number"
    android:inputType="phone"
    android:maxLength="16"
    android:textSize="14sp"
    android:padding="16dp"
    tools:targetApi="O"
    />
4

1 回答 1

0
  1. 这取决于您的自动填充服务为您的应用提供的内容。

  2. & 3. 您可以通过编程方式设置 autofillHints。

     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityMainBinding.inflate(layoutInflater)
         setContentView(binding.root)
         binding.appt_type_phone_number_text.setAutofillHints(View.AUTOFILL_HINT_PHONE) }
    

参考:针对自动填充优化您的应用

于 2021-05-28T22:45:36.600 回答