Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在用户对recycler视图进行更改并生成新的对象列表后保存该视图的内容_Android_Listview_Android Arrayadapter_Android Recyclerview - Fatal编程技术网

Android 在用户对recycler视图进行更改并生成新的对象列表后保存该视图的内容

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]

我正在开发android recyclerview。有一个传递给适配器的对象列表,该列表将完美显示。我的每个viewholder中都有三个视图。这是两个文本视图和一个微调器。用户可以从微调器中选择一个可用选项,这就是更新my recyclerview的方式。 我需要帮助保存更新的对象列表,即用户为所有列表项选择的微调器位置,以从中生成xml

我的代码如下所示:

    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我已经更新了帖子,请查看您是否可以提供帮助。