これに非常によく似た質問がたくさんあることは知っていますが、どれもうまくいかなかったようです。チェックボックスをオンにすると、パスワードが表示されるようになります。チェックを外すと、実際の文字ではなくドットが必要になります。今のところ、ドットしかありません。
次の nullpointerexception が発生しています。
07-08 15:08:50.441: E/AndroidRuntime(4518): FATAL EXCEPTION: main
07-08 15:08:50.441: E/AndroidRuntime(4518): java.lang.NullPointerException
07-08 15:08:50.441: E/AndroidRuntime(4518): at com.passwordkeeper.ui.ActivityPreferenceScreen$1.onPreferenceClick(ActivityPreferenceScreen.java:65)
07-08 15:08:50.441: E/AndroidRuntime(4518): at android.preference.Preference.performClick(Preference.java:951)
07-08 15:08:50.441: E/AndroidRuntime(4518): at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:215)
これは私のコードです:
@SuppressWarnings("deprecation")
public void setFields(){
mPasswordField = (EditText) findViewById (R.id.loginPwdEditText);
showPwd = (CheckBoxPreference) findPreference("checkBox");
showPwd.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
if(showPwd.isChecked()){
Log.v("showpwd", "apparently its checked");
mPasswordField.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
else{
Log.v("showpwd", "apparently its not checked now");
mPasswordField.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD );
}
return true;
}
});
ログは機能しています。したがって、ボックスをチェックすると、実際には「明らかにチェックされている」と印刷されます。しかし、その後スタックし、null ポインター例外によってアプリがシャットダウンされます。
どんな助けでも役に立ちます!