Mein Code sieht folgendermaßen aus:
TextView task_text = (TextView) view.findViewById(R.id.task_text);
task_text.setPaintFlags( task_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Dadurch wird im Text ein Durchschlagseffekt angezeigt. Ich möchte jedoch wissen, wie man das einmal gesetzte Flag entfernt und wie man erkennt, dass das Flag gesetzt ist.
Ich verstehe, dass dies eine bitweise Operation ist, aber ich habe sowohl ~ als auch - Operatoren ausprobiert, beide funktionieren nicht.
android
bitwise-operators
James
quelle
quelle
to remove a
, während es ALLE Flags löscht.Dies funktioniert auch:
quelle
In Kotlin
quelle
Verwenden Exklusiv - ODER - Operator
^
statt|
mit&(~)
Kombination:Überprüfen Sie, ob das Flag gerade eingerichtet ist:
quelle
| --------------------------------------------- - |
| <*> | Unterstreichen Sie mit einer Textansicht:
| ---------------------------------------- ------ |
| * | Unterstreichen hinzufügen:
| * | Unterstreichen entfernen:
| * | Check Underline:
| * | Unterstreichen umschalten:
quelle
Meiner Meinung nach ist es besser, nur das Standardflag zu setzen. Andernfalls wird der Text gezackt angezeigt. Das Standardflag in TextView (EditText erweitert TextView) ist
Wenn Sie eine neue Farbflagge setzen, wird die vorherige ersetzt. Ich habe einen Test durchgeführt, um dies zu überprüfen. Also einfach so:
quelle