简体   繁体   中英

how to get the state of each spinner in a custom adapter

I have a custom adapter where i display text and a spinner. I have tried to store the state of each spinner so as to display the same items when the activity is open again i have tried different things but i have not been successfull. Please how do i accomplish this thanks. This is the latest thing i have tried

    CustomListAdapter(Context context, ArrayList<String> subjects) {
    super(context, R.layout.custom_list_view, subjects);
}



@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    LayoutInflater layoutInflater = LayoutInflater.from(getContext());
    View customView = layoutInflater.inflate(R.layout.custom_list_view, parent, false);

    singleSubject = getItem(position);


    TextView singleText = (TextView) customView.findViewById(R.id.listSubjectsMyCourses);
    colorLayout = (LinearLayout)customView.findViewById(R.id.colorForSubjects);
    relativeLayout = (RelativeLayout) 
   customView.findViewById(R.id.relativeForView);
    parentLayout = (RelativeLayout) 
   customView.findViewById(R.id.parentLayout);
    points = new ArrayList<>();
    selected = new ArrayList<>();
    selectedsttring = new ArrayList<>();
 customView.findViewById(R.id.textViewForGrades);
    tinyDB = new TinyDB(getContext());



         spinnerForGradePoints = (Spinner)customView.findViewById(R.id.spinnerForGrades);
    final ArrayAdapter<String> gradePointAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_dropdown_item_1line, UserCourseSelection2.userSubjectGradePoint);
    spinnerForGradePoints.setAdapter(gradePointAdapter);

    spinnerForGradePoints.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            selectedItempos = adapterView.getSelectedItemPosition();
            String getSelectedItem = adapterView.getItemAtPosition(i).toString();

            tinyDB.putInt("selected", selectedItempos);


        }



        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

  singleText.setText(singleSubject);
    colorLayout.setBackgroundColor(UserCourseSelection2.userSubjectsListColor.get(position));
    int getSelected = tinyDB.getInt("selected");
    spinnerForGradePoints.setSelection(getSelected);

   return customView;

}

SharedPreferences is the way if you dont want to use dependency injection like dagger or some kind of custom local cache on the application level.

For SharedPreferences in spinner check this answer:

https://stackoverflow.com/a/13431729/5577679

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM