信用卡到期日自动填充 - 如何使用4位数年份?

请参阅自动填充文档here 。具体为AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE常量。所以我已经设置了自动填充oreo模拟器,它非常适合获取存储的用户信用卡信息。但问题是,自动填写的格式为“09/19”,但我需要它作为“09/2019”。从文档它说我们可以覆盖getAutofillType() to return AUTOFILL_TYPE_DATE.信用卡到期日自动填充 - 如何使用4位数年份?

我不知道它?因为这样它会将纪元时间返回给我。我如何获得它以我想要的格式返回日期?

谷歌发出指示,如何做到这一点:

您通过覆盖下面的方法定义视图中的日期自动填充值:

  • getAutofillType()返回AUTOFILL_TYPE_DATE。
  • getAutofillValue()返回日期自动填充值。

  • 自动填充(AutofillValue)期望数据自动填充值。

因为这里是我迄今为止在自定义EDITTEXT:

public class AutoFillDateFormEditText extends AppCompatEditText{ 

public AutoFillDateFormEditText(Context context) {

super(context);

}

public AutoFillDateFormEditText(Context context, AttributeSet attrs) {

super(context, attrs);

}

public AutoFillDateFormEditText(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

@Override

public int getAutofillType() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

return AUTOFILL_TYPE_DATE;

}

else return super.getAutofillType();

}

@Override

public void autofill(AutofillValue value) {

super.autofill(value); //what goes here ? im lost

}

@Nullable

@Override

public AutofillValue getAutofillValue() {

return //what should i return here ????

}

}

即使我坚持推荐只覆盖getAutofillType()断点被破发点命中,其余被覆盖的方法没有被击中。我下载了谷歌示例应用程序“自动填充示例”,并尝试它,日期也不起作用。所以我不认为它我做错了什么。我正在测试一个oreo模拟器api 26 Nexus 6P。

同样的指示在这里:https://developer.android.com/guide/topics/ui/controls/pickers.html#PickerAutofill

,但似乎不是目前的工作(至少在仿真器)与系统自动填充服务。

回答:

您可以使用SimpleDateFormat格式化日期。

DateFormat originalFormat = new SimpleDateFormat("MM/yy", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("MM/yyyy");
Date date = originalFormat.parse("09/19");

以上是 信用卡到期日自动填充 - 如何使用4位数年份? 的全部内容, 来源链接: utcz.com/qa/261502.html

回到顶部