Android 在用户对recycler视图进行更改并生成新的对象列表后保存该视图的内容
我正在开发android recyclerview。有一个传递给适配器的对象列表,该列表将完美显示。我的每个viewholder中都有三个视图。这是两个文本视图和一个微调器。用户可以从微调器中选择一个可用选项,这就是更新my recyclerview的方式。 我需要帮助保存更新的对象列表,即用户为所有列表项选择的微调器位置,以从中生成xml 我的代码如下所示:Android 在用户对recycler视图进行更改并生成新的对象列表后保存该视图的内容,android,listview,android-arrayadapter,android-recyclerview,Android,Listview,Android Arrayadapter,Android Recyclerview,我正在开发android recyclerview。有一个传递给适配器的对象列表,该列表将完美显示。我的每个viewholder中都有三个视图。这是两个文本视图和一个微调器。用户可以从微调器中选择一个可用选项,这就是更新my recyclerview的方式。 我需要帮助保存更新的对象列表,即用户为所有列表项选择的微调器位置,以从中生成xml 我的代码如下所示: int size = mAdapter.getItemCount(); int val[]= new int[size]
int size = mAdapter.getItemCount();
int val[]= new int[size]; //till here it's working perfectly fine
for(int i=0; i<size; i++){
View view_temporary = recyclerView.getChildAt(i);
Spinner spin = (Spinner)view_temporary.findViewById(R.id.action);
val[i] = spin.getSelectedItemPosition();
Log.d("OfficeSpace", ""+val[i]);
}
int size=mAdapter.getItemCount();
int val[]=新的int[size]//直到现在,一切都很好
对于(int i=0;i我已解决该问题。我想在滚动回顶部后保存视图持有者中的微调器项的状态。在我的onBind方法recyclerView中,我添加了以下代码:
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
final Features feature = mFeatures.get(position); //to get the current object from the list
holder.mSpinner.setSelection(feature.getVal());
holder.mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
mFeatures.get(position).setVal(pos);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
@覆盖
公共无效onBindViewHolder(最终MyViewHolder,最终int位置){
final Features feature=mFeatures.get(position);//从列表中获取当前对象
holder.mSpinner.setSelection(feature.getVal());
holder.mSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父项、视图、整数位置、长id){
mFeatures.get(position).setVal(pos);
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
欢迎来到Stackoverflow!为了获得更多帮助,您可以分享您的代码或至少您已经尝试过的操作吗?@BrandonHaugen我已经更新了帖子,请查看您是否可以提供帮助。