Spinner 保存上次 浏览记录 方法
小编今天 项目中 遇到 一个 保存上次浏览记录 的情况 因为使用的 Spinner 所以 只是针对于 使用Spinner 系统插件的 小伙伴
先看下效果 注意 教材列表 选中的教材
第一次进去的时候显示的是 七年级上册 然后我进去之后选择的是八年级 下册 点击返回键 然后在进去 默认选择 八年级下册 成功
,但是在这里之前 小编 遇到了很多问题 ,因为 首先 看段代码
spYuxi.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
if (position < jiaocaiList.size()) {
spYuxi.setPrompt(jiaocaiList.get(position).getSubjectname() + "-" + jiaocaiList.get(position).getBookname());
lsbid = jiaocaiList.get(position).getLsbid();
zhangjieList.clear();
yuxiList.clear();
page = 1; //当每次选择 新教材的时候 因为详情都要重新加载所以 将页数设置 1
yuxiPresenter.setDataartice(lsbid, 1); //教材选择之后全部数据
remember_number = position;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
** 注意:代码中的: spYuxi 是我的spinner 控件变量名** 在上段代码中 大家可以看出来 这个监听事件 不是一个点击的监听事件 ,他就是用来监听 spinner 中列表 改变的 监听 ,相信大家 也遇到过一些问题 比如说 在项目中 一进来之后 他的这个监听状态 就直接 走了 并且默认 position 是0 所以 当咱们 需要有记录 历史 的这个功能的时候 就有些头疼 我当时 也是从网上 搜了很久 才搜到一篇 精髓 我先给大家截个图 先看关键位置 然后再看下 我的代码
下边加上我的代码
package com.xhly.easystud.zhan.studentyuxi;
import android.app.AlertDialog;
import android.app.backup.SharedPreferencesBackupHelper;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSON;
import com.dueeeke.videoplayer.util.L;
import com.example.juanshichang.base.Api;
import com.example.juanshichang.base.JsonParser;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import com.xhkjedu.sxb.api.re.SchoolService;
import com.xhly.easystud.MyApp;
import com.xhly.easystud.R;
import com.xhly.easystud.api.ApiManager;
import com.xhly.easystud.base.BaseMvpActivity;
import com.xhly.easystud.bean.ResultVo;
import com.xhly.easystud.bean.StudentYuxiBean;
import com.xhly.easystud.bean.SyncVideoArticeBean;
import com.xhly.easystud.bean.SyncVideoTextBookBean;
import com.xhly.easystud.http.Content;
import com.xhly.easystud.http.SingleMap;
import com.xhly.easystud.ui.fragment.ResourseFragment;
import com.xhly.easystud.utils.LogTool;
import com.xhly.easystud.utils.RxScheduler;
import com.xhly.easystud.utils.SharedPreferencesUtil;
import com.xhly.easystud.utils.StartUtil;
import com.xhly.easystud.utils.Util;
import com.xhly.easystud.widget.LiveDataBus;
import com.xhly.easystud.zhan.studentyuxi.contreactyuxi.ContractYuxi;
import com.xhly.easystud.zhan.studentyuxi.presenter.YuxiPresenterImpl;
import com.xhly.easystud.zhan.xyncvideo.SynvVideoArticeAdapter;
import org.angmarch.views.NiceSpinner;
import org.angmarch.views.OnSpinnerItemSelectedListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.functions.Consumer;
/**
* 作者:NB的LittleWhite
* <p>
* 邮箱:[email protected]
*/
public class YuxiActivity extends BaseMvpActivity<YuxiPresenterImpl> implements View.OnClickListener, ContractYuxi.MyView {
private static final String TAG = "YuxiActivity";
Integer page = 1;
Integer pageSize = 10;
Integer schoollevel = 0;
Integer createid = 0; //用户id
Integer schoolid = 0; //学校id
Integer lsbid = 0; //教材id
Integer directorid = 0; //章节id
Integer subjectid = 0; //科目id
private TextView tvBack;
private SmartRefreshLayout smartYuxi;
private RecyclerView relvYuxi;
private YuxiPresenterImpl yuxiPresenter;
private RelativeLayout rlytEmpty;
private ArrayList<SyncVideoTextBookBean.ObjBean> jiaocaiList;
private ArrayList<SyncVideoArticeBean.ObjBean> zhangjieList;
private ArrayList<StudentYuxiBean> yuxiList;
private RecyclerView relvZhangjie;
private SynvVideoArticeAdapter synvVideoArticeAdapter;
private StudentYuxiAdapter studentYuxiAdapter;
private CheckBox chkAll;
private FrameLayout listAll;
private RelativeLayout rlytEmpty1;
private LiveDataBus bus = LiveDataBus.get();
private Integer resourceid = 0; //资源id
private long starttime = 0; //开始时间
private Integer classid = 0; //课堂id
private Integer groupid = 0; //组id
private Integer user = 0; //学生id
private Spinner spYuxi; //教才
private Integer remember_number = 0; //记录上次的位置
private HashMap<Integer, Integer> remember_number_map;
@Override
protected int getContentView() {
return R.layout.activity_yuxi;
}
@Override
protected void initView() {
changeStatusColor(true);
tvBack = findViewById(R.id.tv_back);
smartYuxi = findViewById(R.id.smart_yuxilist);
listAll = findViewById(R.id.listAll);
rlytEmpty1 = findViewById(R.id.rlyt_empty1);