首页 > 解决方案 > 在 RecyclerView 中所做的微调器选择在滚动出视图时会被重置

问题描述

在 Android 中,当微调器移出视线时,有哪些方法可以防止Spinnersa被重置?RecyclerView它们都具有相同Id的 ,因此无法将选择保存在ShardPreferences对象中。而且我认为保存整个活动的状态也不适用于这里。

标签: androidandroid-recyclerviewsharedpreferencesandroid-spinner

解决方案


HashMap您可以执行此解决方法,在您的项目位置中创建一个adapter,该值将是微调器中的选定索引,或者您可以向模型添加一个属性,调用该属性以spinnerIndex将索引保存在您的项目中,您的所有工作都将在onBindViewHolder 示例中

public class Item {

    int spinnerSelectedIndex;

    public int getSpinnerSelectedIndex() {
        return spinnerSelectedIndex;
    }

    public void setSpinnerSelectedIndex(int spinnerSelectedIndex) {
        this.spinnerSelectedIndex = spinnerSelectedIndex;
    }
}

在你的里面onBindViewHolder

spinnerObject.setSelection(getSpinnerSelectedIndex());

onItemSelected当设置微调器的侦听器时,您会像这样从回调中填充索引

spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
                item. setSpinnerSelectedIndex(arg2)
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

推荐阅读