android - Spinner 是否有替代 TextChangedListener 的方法

标签 android spinner textchanged

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

相关文章:

android - Azure devops 管道构建和部署我的原生 Android 应用程序 Google Play 商店或 App Center 作为 App Bundle

android - Android中如何将ByteBuffer转为图片

android - 闭合微调器的文本颜色

Android Spinner 对于 "drop down state"和 "closed state"有不同的布局?

android - 如何在 EditText 控件中的文本更改后 0.5 秒执行某些操作?

c# - WPF 中的文本框文本更改事件

android - Unity3d Android Java堆空间错误

android - Google IO Sched 应用程序 - 平板电脑布局和 fragment

android - 如何保存微调器输入?

c# - C# 中的 MS Word 加载项文本更改事件