通过阅读Android文档,我知道不可能为Spinner使用addTextChangedListener,但是我有一个替代方案吗?
我创建了许多表单,并且我希望在有未保存的更改时通知用户(我在使用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;
}
非常感谢。
答案 0 :(得分:3)
由于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) {}
});