java - Override the Numpad_Dot -


i have 4 edit texts; oct1, oct2, oct3, oct4. these edit texts type numberdecimal. have initial focus on oct1. need when user presses . (numpad dot) not enter . oct, clear focus , focus on next edit text.

this should easy, surprisingly frustrating me. have tried.

overriding onkeydown. won't produce logs.

    @override     public boolean onkeydown(int keycode, keyevent event) {        if(keycode == keyevent.keycode_numpad_dot){           oct3.clearfocus();           oct4.requestfocus();           return true;        }        log.d("keycode", string.valueof(keycode));        log.d("event", string.valueof(event));        return false; } 

then this. have many different variants of this. have been able switch focus this, not delete ..

    oct3.addtextchangedlistener(new textwatcher() {         @override         public void beforetextchanged(charsequence s, int start, int count, int after) {             //do nothing         }          @override         public void ontextchanged(charsequence s, int start, int before, int count) {             if(count > 0){                 if(s.charat(s.length()-1) == ".".charat(0)){                      log.d("sequence", "noticed \".\"");                     isperiod = true;                 } else {                     log.d("sequence", "noticed \""+s+"\"");                 }             }          }          @override         public void aftertextchanged(editable s) {             if(isperiod){                 s.delete(s.length() -1, s.length() -1);                 oct3.clearfocus();                 isperiod = false;                 oct4.requestfocus();             }         }     }); 

try setting in ontextchanged:

  listener = (new textwatcher() {         @override         public void beforetextchanged(charsequence s, int start, int count, int after) {          }          @override         public void ontextchanged(charsequence s, int start, int before, int count) {             if(count > 0){                 if(s.charat(s.length()-1) == '.'){                     log.d("sequence", "noticed \".\"");                     charsequence text = s.subsequence(0, s.length()-1);                     log.d("view clicked:", string.valueof(getcurrentfocus()));                     settextandadvance(getcurrentfocus(), text);                 } else {                     log.d("sequence", "noticed \""+s+"\"");                 }             }         }          @override         public void aftertextchanged(editable s) {          }     }); 

Comments

Popular posts from this blog

php - regexp cyrillic filename not matches -

c# - OpenXML hanging while writing elements -

sql - Select Query has unexpected multiple records (MS Access) -