현재 리사이클러뷰에서 스피너와 텍스트뷰, 에디트 택스트 등의 인플레이터를 만들어서 복합적으로 사용하고 있습니다.
그 중 스피너가 문제가 됬는데요
리사이클러뷰 특성상 스피너가 안보이게 스크롤 하고 돌아오면 스피너가 초기화가 되는 현상입니다.
setOnItemSelectedListener을 사용해서 onItemSelected일 때 포지션값과 해당 String을 저장하여 스크롤하여 다시 초기화가 될 때 setSelection을 이용해서 저장한 포지션 값으로 셋팅하려고 했습니다.
하지만 setSelection이 실행될 때 (또는 setAdapter인데 구글링으로 찾아보는 중 setSelection일 때 라고 하더군요) OnItemSelected가 실행되면서 포지션이 0번값으로 돌아가 버립니다.
제가 무언가 놓치고 있는것이 있을까요?
밑은 제가 사용한 코드입니다.
ArrayAdapter spinnerAdapter = new ArrayAdapter(getApplicationContext(), R.layout.support_simple_spinner_dropdown_item, SpnTeam);
((spinnerViewHolder) holder).SprCont.setAdapter(spinnerAdapter);
((spinnerViewHolder) holder).SprCont.setSelection(TeamPosition, false);
Toast.makeText(getApplicationContext(), SelectItemTeam + TeamPosition, Toast.LENGTH_SHORT).show();
((spinnerViewHolder) holder).SprCont.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SelectItemTeam = String.valueOf(teamInf.get(position).getWorkTeamName());
TeamPosition = position;
Toast.makeText(getApplicationContext(), SelectItemTeam + TeamPosition, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
})