目前您的 TextWatcher 尚未绑定到 EditText
你应该使用addTextChangedListener(TextWatcher yourWatcher)
在你的 EditText 上。
这是我的例子:
smsET.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.d(TAG, "onTextChanged start :"+start +" end :"+count);}
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
Log.d(TAG, "beforeTextChanged start :"+start +" after :"+after);
}
public void afterTextChanged(Editable s) {
int lastPosition = s.length()-1;
char lastChar = s.charAt(lastPosition);
Log.d(TAG, "afterTextChange last char"+lastChar );
}
});
在你的代码中应该是这样的:
KeyLogEditText.addTextChangeListener(KeyLogTextWatcher );
该观察程序中包含的每个方法都是通过从键盘输入每个信号来触发的。
由于输入后获得了位置,因此您可以轻松获取输入的字符
为了存储您提到的数据,SharedPreferences 将比 DB 更快。 (许多写入数据库)如果您的目标至少是 api 11,您可以简单地使用 StringSetEditor.putStringSet http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#putStringSet%28java.lang.String,%20java.util.Set%3Cjava.lang.String%3E%29如果您的目标较低也是可能的,例如:http://androidcodemonkey.blogspot.com/2011/07/store-and-get-object-in-android-shared.html http://androidcodemonkey.blogspot.com/2011/07/store-and-get-object-in-android-shared.html
.