I have a weird problem when using spinner
widget inside a recyclerview
. So the story is like this I have a recyclerview
which has the spinner and I am passing list which needs to be inflated from fragment to the recyclereview
where I am creating adapter
if the data is not null and setting it into the spinner, but it works sometimes and most of the times not. It also works when getting focus or typing in edit text below it.
Note: I have already checked the other questions related this and yes I am using a white background with black text color layout which is basically a custom layout for the spinner. I am having a hard time figuring out what is going on.
This is my code for setting spinner in onBindViewHolder()
@Override
public void onBindViewHolder(FamilyMemberAdapter.ViewHolder holder, int position) {
FamilyMemberRecyclerViewModel familyMemberModel = familyMemberRecyclerViewModelList.get(holder.getAdapterPosition());
if (familyMemberModel.getRelationTypeModelList()!=null){
relationTypeModelArrayAdapter = new ArrayAdapter<RelationTypeModel>(context,R.layout.item_spinner,familyMemberModel.getRelationTypeModelList());
holder.spnRelationType.setAdapter(relationTypeModelArrayAdapter);
if (familyMemberModel.getRelationTypeAdapterModel()!=null){
int positionRelation = relationTypeModelArrayAdapter.getPosition(familyMemberModel.getRelationTypeAdapterModel());
holder.spnRelationType.setSelection(positionRelation);
}
}
}
spinner onItemSelectedListener()
spnRelationType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//here differentiate between different doc and relation
uploadDocumentItemsClickListener.onSpinnerChangeListener(spnRelationType,getAdapterPosition(),adapterView.getSelectedItemPosition());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
Here is snapshot of what is going on.
This is I am selecting item from the spinner
This is after selecting an item from the spinner.
Please let me know if more code needed.