通过阅读 Android 文档,我了解到无法将 addTextChangedListener 用于 Spinner,但是我是否缺少替代方案?
我已经创建了许多表单,并且我想在有未保存的更改时通知用户(当我使用 EditText 框时可以这样做)。
下面是 EditText 的 textChangeListener 示例:
inspectionReferenceEditText.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
changesMade = true;
}
非常感谢。
最佳答案
由于 Spinner 不涉及用户键入文本,我看不出 TextWatcher 有何帮助。但是你可以使用 OnItemSelectedListener在用户进行更改时收到通知。
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
int previous = -1;
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(previous != position && previous < -1) {
Log.v("Example", "Item Selected: " + parent.getItemAtPosition(position).toString());
// Do something
}
previous = position;
}
public void onNothingSelected(AdapterView<?> parent) {}
});
关于android - Spinner 是否有替代 TextChangedListener 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752535/