android - 在 RecyclerView 中所做的微调器选择在滚动出视图时会被重置
问题描述
在 Android 中,当微调器移出视线时,有哪些方法可以防止Spinners
a被重置?RecyclerView
它们都具有相同Id
的 ,因此无法将选择保存在ShardPreferences
对象中。而且我认为保存整个活动的状态也不适用于这里。
解决方案
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
}
});
推荐阅读
- java - 字母数字字段的字符串增量适用于 JPA 不起作用
- java - 如何使用 chrome 选项启动 chromebrowser?
- python - 如何在数据库中保存波斯数字(mysql)
- c# - 如何迭代/遍历 XML 文件元素(包含不同的命名空间)以将其转换为 C# 中的数据表
- azure-devops - 如何在 VSTS 中发布管道后运行管道?
- excel - VBA剪切整行并在更改时粘贴到下一列
- ios - 如何从字典数组中获取数据 - swift
- java - Java 9 替换 Class.newInstance
- office365 - 如何从 powerapps 为 Office 365 环境中的用户启用自定义角色
- amazon-web-services - 如何将 S3 数据向上移动到一个分区级别?