2015-02-11 1 views
0

У меня было 6 EditText в строке для ввода адреса mac, поэтому после проверки ввода пользователя в macAddress EditText, если нет. записей в одном EditText становится 2, я бы назвал фокус на следующем окне редактирования, как показано ниже.Есть ли способ обнаружить тип softInput Keyboard visible

@Override 
    public void onTextChanged(CharSequence s, int start, int before, 
      int count) { 
     //myMacArray is an array for storing macaddress editTexts ID 
     //mIndex represents the the index for for each EditText 
     if((myMacArray [mIndex]).getText().length() == 2) 
      if(mIndex < 5) 
       myMacArray [mIndex+1].requestFocus();//requesting focus to 
                //next editText 
    } 

Теперь, если я пользователь использует программную клавиатуру Qwerty, то его работает нормально .... но в случае клавиатуры 3x4, если пользователь хочет ввести «1b» (inputing «Ъ» в панели 3х4 потребуется дважды нажать вторую кнопку) в любом текстовом редакторе macAddress, это не будет работать, так как фокус теперь смещается в следующий editBox сразу после первого щелчка пользователя.

Пожалуйста, дайте мне знать, если есть способ, чтобы определить тип клавиатуры открыта пользователем или каким-либо другим способом, чтобы иметь дело с этим

+0

Check [это] (http://stackoverflow.com/a/5723339/4385913) является то, что вы ищете? –

+0

@JoanColmenero: извините, но это не то, что я ищу ..... это не позволяет мне различать Qwerty-клавиатуру и 3x4 kepad. спасибо за помощь ур :) –

ответ

0

Вы можете «сила» тип клавиатуры вы хотите, чтобы придумать, указав

android:inputType="<...>" 

Атрибут в вашем редакторе. Если ваши пользователи будут печатать буквы и цифры, нет никаких оснований позволять им использовать телефонную панель.

https://developer.android.com/training/keyboard-input/style.html https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType