是否可以将新的Android Oreo自动填充功能用于生日?有没有办法区分名字和名字?姓?我只在API文档中看到了AUTOFILL_HINT_NAME。
答案 0 :(得分:2)
这些属性View.AUTOFILL_HINT_ * 并不是很好的,而是建议。在android:autofillHints
中,您可以从文档中设置所需的任何字符串,甚至可以是多个用逗号分隔的字符串:
描述视图的内容,以便自动填充服务可以填充适当的数据。可以在逗号分隔的列表或字符串数组中组合多个提示,以表示例如emailAddress或postalAddress。
自动填充服务接收到这些提示,并根据其算法实现返回FillResponse
数据集以及可能要填充的数据。
该服务甚至可以在节点中查找包含诸如“名字”之类的标签的视图,以确定您的EditText想要名字而不是全名。您可以在autofillHint
上放置“名字”,但是只有当用户拥有具有名字数据的自动填充服务并且其算法足够智能才能匹配它时,该功能才有效。
简而言之,不能保证自动填充功能对特定用户有效,但是有些程序会增加机会:
autofillHint
,以逗号分隔。记住使用其他系统使用的常数或行业标准,例如HTML标准将given-name
用作名字。如果Google自动填充功能开始支持将其匹配算法用作候选者的名字和姓氏,那么android:autofillHint="first-name,given-name,display-name"
的匹配可能性就很大。android:importantForAutofill="yes"
,请使用TextView
,并尝试将其放置在同一视图节点中。EditText
,AutocompleteTextView
和其他已选择自动填充的视图。选中此autofill optmize Android guide,以获取更多提示。
答案 1 :(得分:1)
在浪费一天的时间后,尝试为名字添加autofillHints
,因为显然family-name
适用于google自动填充服务:@,但名字无效。因此我检查了Facebook应用程序和Flixbus,并猜测它们俩都可以自动填充名字,所以我很拼命,我尝试了cc-given-name
,但效果很好!!!!即使手机上的google帐户名称是该公司的Google帐户,之前也没有输入任何信用卡。
可悲的是,Android团队没有人愿意提起family-name
提示或cc-given-name
实际上存在的事实,无论您以前是否曾经使用自己的帐户填写过信用卡信息。
因此,对我来说,我只使用了EditText,而没有任何标签,但是我不得不添加android:hint="First name"
和android:hint="Last name"
来显示自动完成功能,因此没有提示它是行不通的。
就像这样:(为简单起见,删除了id,layout_width / height和导向)
<LinearLayout android:orientation="horizontal">
<EditText
android:autofillHints="cc-given-name"
android:hint="First name"/>
<EditText style="@style/ChangeUserPropertyInput2"
android:autofillHints="family-name"
android:hint="Last name"/>
</LinearLayout>
答案 2 :(得分:0)
是否可以将新的Android Oreo自动填充功能用于生日?
没有。希望很少有人在同一个应用程序中反复进入他们的生日。
有没有办法区分名字和名字?名字?
没有
Android的自动填充支持HTML5's autocomplete detail tokens的一小部分。
答案 3 :(得分:0)
现在记录了更多自动填充提示值
https://developer.android.com/reference/androidx/autofill/HintConstants
我将这些值用作名字和姓氏,并且效果很好
".AUTOFILL_HINT_PERSON_NAME_FAMILY"
".AUTOFILL_HINT_PERSON_NAME_GIVEN"
注意:有一个“。”在这两个字符串的开头。
我发现自动填充UI有点令人困惑,因为在填写名字字段时,弹出窗口会显示全名(请参见下面的屏幕截图)。但是,当用户单击其全名时,名字和姓氏字段将立即填写,这很酷!