Я пробираюсь через кучу учебных пособий по Android на YouTube, я думаю, что они уже немного устарели. Бит, который я сейчас использую, имеет следующий код:
tglButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (tglButton.isChecked()) {
inputText.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else {
inputText.setInputType(InputType.TYPE_CLASS_TEXT);
}
}
});
Видео показывает, почему здесь используется побитовый оператор, и в верхнем комментарии говорится, что:
Каждый из типов ввода на самом деле является целым числом. TYPE_CLASS_TEXT равно 1,
и TYPE_TEXT_VARIATION_PASSWORD равно 128 (или 10000000).
Выполнить побитовое ИЛИ для них:
00000001
10000000
10000001
, что составляет 129.
Попробуйте ввести input.setInputType (129); вместо этого вы увидите, что это сработает. :)
Почему? Целью этой части является переключение типа EditText
с text
на password
в зависимости от состояния ToggleButton
. Почему это 129, а не 128, и почему, в этом отношении это даже используется.
Я уверен, что есть лучший способ достичь этого; но я надеюсь понять, почему это было сделано так.