0
我在Android的初学者超过,如何在性格特征极限的EditText超过玩的嘟嘟声,我已经通过设置addTextChangeListener尝试,但它不会让事情发生后超限所以着播放的声音和onKeylistener只适用于物理密钥,所以请给我任何提示以解决问题。蜂鸣声时editext字LIMT在android系统
这是我的代码
private EditText editTextBox; private MediaPlayer mMediaPlayer; private int len; private int limit = 10;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// setContentView(new EditText(this));
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;
}
});
}
private void playAudio() {
try {
mMediaPlayer = MediaPlayer.create(this, R.drawable.beep1);
mMediaPlayer.setLooping(false);
Log.e("beep", "started0");
mMediaPlayer.start();
Log.e("beep", "started1");
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
// finish();
stopAudio();
}
});
} catch (Exception e) {
Log.e("beep", "error: " + e.getMessage(), e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
stopAudio();
}
private void stopAudio() {
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
}
在此先感谢
您可以发布您当前的代码? – Wroclai 2010-09-02 08:18:31
我发布了代码 – Navya 2010-09-02 09:04:20