滚动到视图外时,RecyclerView中的微调框选择将重置

时间:2018-07-11 08:14:54

标签: android android-recyclerview sharedpreferences android-spinner

在Android中,有哪些方法可以防止在旋转器移出视线时library(tidyverse) tibble(n=1:10) %>% mutate(output = map2(list(df),n ,function(x,y){ x %>% mutate(value = lag(value,y)) })) %>% spread(n,output) %>% unnest() %>% na.omit() 中的map2(list(df), 1:10, function(x, y) { x %>% mutate(value = lag(value,y)) }) %>% bind_cols() %>% na.omit() 被重置?它们都具有相同的Spinners,因此无法将选择保存在RecyclerView对象中。而且我也不认为保存整个活动的状态在这里也适用。

2 个答案:

答案 0 :(得分:0)

您可以执行此解决方法 在商品位置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

        }
    });

答案 1 :(得分:0)

如果您的列表是只读的,并且列表项没有更改,则可以使用viewholder.setIsRecyclable(false)。

当您列出其更改项时,我仍在寻找一种方法。