代码之家  ›  专栏  ›  技术社区  ›  dell116

单击后,密码将显示在Leanback引导的步骤操作上

  •  1
  • dell116  · 技术社区  · 7 年前

    我的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);
    }
    
    0 回复  |  直到 7 年前
        1
  •  2
  •   user8888146    5 年前

    以下代码有效

    GuidedAction.Builder(activity)
                .id(PASSWORD.toLong())
                .title("Password")
                .descriptionEditable(true)
                .descriptionInputType(InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
                .descriptionEditInputType(InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
                .build()