是否有替代Spinner的TextChangedListener

时间:2012-10-05 19:05:35

标签: android spinner textchanged

通过阅读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;
         }

非常感谢。

1 个答案:

答案 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) {}
});