Löschen - Taste bei EditText ignorieren

  • Antworten:7
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 2.492

24.03.2014, 19:18:25 via Website

Hallo,

ich würde gerne, dass die Löschen - Taste in einem EditText ignoriert wird. Also wenn man da drauf drückt soll einfach nichts passieren.
Wie kann ich das lösen?
Der/die/das(?) EditText ist ganz normal in einer XML erstellt und auf ihm liegt noch ein TextChangedListener sonst bisher nichts.

Hab das hier versucht, ändert aber nichts:
1@Override
2 public boolean onKeyDown(int keyCode, KeyEvent event) {
3 if (keyCode == KeyEvent.KEYCODE_DEL) {
4 return false;//oder true
5 }
6 return super.onKeyDown(keyCode, event);
7 }

— geändert am 24.03.2014, 21:47:01

Antworten
Florian S.
  • Forum-Beiträge: 71

26.03.2014, 07:21:35 via App

Was meinst du für eine Löschen-Taste?

Lg

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

26.03.2014, 11:22:32 via Website

Die Backspace - Taste (in deutsch laut Wikipidia: Rückschritttaste, Rücktaste oder Rücklöschtaste) meine ich. Also um den letzten Buchstaben zu löschen.

Antworten
Michele
  • Forum-Beiträge: 1.525

26.03.2014, 11:28:11 via Website

Hallo Lars?

Und was soll das für einen sinn haben?:D


LG

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

26.03.2014, 12:09:16 via Website

Es geht darum einen Text fehlerfrei einzugeben und dabei darf dann nicht korrigiert werden:wink:

Antworten
Florian S.
  • Forum-Beiträge: 71

26.03.2014, 12:37:23 via Website

Versuchs mal damit
1editText.setOnKeyListener(new OnKeyListener() {
2 @Override
3 public boolean onKey(View v, int keyCode, KeyEvent event) {
4 if(keyCode == KeyEvent.KEYCODE_DEL){
5 ...
6 }
7 return false;
8 }
9 });

also zuerst den OnKeyListener auf deinen EditText setzen, und dann kannst darauf reagieren. Sollte es mit einer lehren Anweisung nicht klappen, müsstest du es anders lösen und z.B immer in einer Variable die Länge des eingegeben Textes speichern, und sobald diese kleiner wird, als sie mal maximal war, den letzen Buchstaben wiederherstellen.

LG

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

26.03.2014, 17:36:25 via Website

So geht es leider auch nicht, dann muss ich wohl immer den letzten geschriebenen Buchstaben wieder einfügen.
Trotzdem danke jetzt hab ich wenigstens die richtige Methode ;)

Edit: Hab grad in die Methode ein Toast gesetzt und es kommt nichts. Also erkennt der den Delete Klick anscheinend gar nicht.

Edit2: Es geht jetzt doch folgendes habe ich gemacht:
1edittext.setOnKeyListener(new OnKeyListener() {
2 @Override
3 public boolean onKey(View v, int keyCode, KeyEvent event) {
4 // TODO Auto-generated method stub
5 if(keyCode == KeyEvent.KEYCODE_DEL){
6 return true;//das hat es gebracht ;)
7 }
8 return false;
9 }
10 });

Danke für die Hilfe :)

— geändert am 26.03.2014, 17:56:16

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

27.03.2014, 18:28:00 via Website

Hab das jetzt auch auf meinem Zweitgerät probiert, aber da wird die Delete Taste leider gar nicht erkannt.
Hat da jemand noch eine Idee?

Edit: Hab es jetzt nach der Idee von Florian gelöst: in der onTextChanged Methode vom editText immer die Länge in einem Integer gespeichert und wenn diese kleiner ist als vorher das alte Wort hergestellt ;)
Danke dafür!

— geändert am 27.03.2014, 19:11:43

Antworten