前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

メアド、パスワードの入力候補を無効化したい

課題

Androidの8.0からAutofill機能が追加され、メアドとパスワードを記憶、自動セットしてくれるようになったが、 新規入力画面ではメールアドレス、パスワードの保管を無効化したい。どうすればよいか。

対応

importantForAutofillno にする

<TextView
    android:importantForAutofill="no" />

逆に yes にすればAndroidが普段AutoFillをしないような項目でも使えるようになる(はず)。

この対応がなぜ必要になったか

新規会員登録画面で別画面から取得したメールアドレス欄をisClickable,isFocusableがともにfalseな状態で初期表示させていたが、 パスワード入力時にAutoFill機能が発動し、メールアドレスが変更されてしまった。 その結果、別画面で実施していたメアドの存在チェックが意味をなさなくなってしまった。 EditTextやめればいいじゃんという考えもあると思うけど、 OAuthログイン時にはここでメールアドレスの入力が必要になるなどの分岐が存在した。

まあ新規登録時にAutoFillは普通いらないはず。