我的leanback应用程序中有一个GuidedStepFragment作为身份验证类型的片段。
当用户按enter键或进入下一个引导操作时,如何防止“密码”引导操作显示键入的文本?
我面临的问题是,当用户输入密码时,密码是隐藏的,
但当用户浏览下一个指南时会显示
.
@Override
public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
GuidedAction action;
if (getArguments() != null) {
type = getArguments().getInt(ARG_TYPE);
}
if (type == TYPE_EMAIL) {
action = new GuidedAction.Builder(getActivity())
.id(ActionConstants.ACTION_INPUT_EMAIL)
.editable(true)
.description(getString(R.string.email_address_hint))
.editInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS)
.build();
} else {
action = new GuidedAction.Builder(getActivity())
.id(ActionConstants.ACTION_INPUT_PASS)
.editable(true)
.description(getString(R.string.password))
.editInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD)
.build();
}
actions.add(action);
action = new GuidedAction.Builder(getActivity())
.id(ActionConstants.ACTION_CONTINUE)
.title(R.string.next)
.hasNext(true) // Shows the small arrow indicating there's something next...
.build();
actions.add(action);
}
我已经尝试覆盖setupImeOptions,在EditText上显式设置TransformationMethod,但在用户执行下一个操作后,这仍然无法隐藏用户的密码。
@Override
protected void setupImeOptions(ViewHolder vh, GuidedAction action) {
switch ((int) action.getId()) {
case ActionConstants.ACTION_INPUT_PASS :
vh.getEditableDescriptionView().setTransformationMethod(new PasswordTransformationMethod());
vh.getEditableTitleView().setTransformationMethod(new PasswordTransformationMethod());
break;
}
super.setupImeOptions(vh, action);
}