tags:

views:

13

answers:

0

I am using onKeyListener to get the onKey events. It works fine with the normal keyboard. But it does not work with soft keyboard. I am only able to get onKey events for numerics and not alphabets. Is there any workaround to solve this? plz help me its urgent.

public class BeepActivity extends Activity { private EditText editTextBox; private MediaPlayer mMediaPlayer; private int len; private int limit = 10;

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    editTextBox = (EditText) findViewById(R.id.EditTextBox);

    editTextBox.addTextChangedListener(new TextWatcher() {

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            if (s.length() > 10) {
                playAudio();
            }
            if (s.length() == limit) {
                len = limit + 1;
            } else {
                len = s.length();
            }
            Log.e("beep", "onTextChanged" + " " + count);
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            Log.e("beep", "beforeTextChanged");
        }

        public void afterTextChanged(Editable s) {
            Log.e("beep", "afterTextChanged");
        }
    });
    editTextBox.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("beep", "onKeyListener" + " " + len);
            if (len == limit + 1) {
                len++;
            } else {
                if (len > limit) {
                    if (!(keyCode == KeyEvent.KEYCODE_DEL))
                        playAudio();
                }
            }
            Log.e("beep", "onKeyListener");
            return false;
        }
    });

}