2015-02-16 2 views
0

Я хочу определить, какая клавиша нажата с клавиатуры, в то время как текст текста в поле EditText. Я использую этот код, но он не работает.Как определить пробел нажата с клавиатуры

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (keyCode == KeyEvent.KEYCODE_SPACE) { 

     Toast.makeText(MainActivity.this, "White space is clicked", Toast.LENGTH_LONG).show(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

, где я ошибаюсь?

ответ

0

попробовать это, это может помочь вам

boolean userPressedKey = false ; 

yourEditText.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) { 
     userPressedKey = false ; 
    } 

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     userPressedKey = true; 
    }); 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (userPressedKey) { 
     if (keyCode == KeyEvent.KEYCODE_SPACE) { 
    Toast.makeText(MainActivity.this, "White space is clicked", Toast.LENGTH_LONG).show(); 
      return true; 
     } 
    } 
    super.onKeyDown(keyCode, event); 
} 
+0

я вхожу данные в EditText, что теперь я хочу когда пользователь нажимает SpaceBar, тогда новое слово начинается со специального символа, такого как «$». То, что каждое слово в EditText после пробела должно иметь первую букву как «$». – Tara

+0

вы, пожалуйста, помогите мне сделать это !!!!!!!!!!!! – Tara

1

вы можете попробовать следующий код ----

editText1.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void afterTextChanged(Editable arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, 
      int count) { 
     // TODO Auto-generated method stub 
     String lastChar = s.toString().substring(s.length() - 1); 
     if (lastChar.equals(" ")) { 
      Toast.makeText(MainActivity.this, "space bar pressed", 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 

}); 

}

 Смежные вопросы

  • Нет связанных вопросов^_^