2017-05-11 22 views
1

私はテキストとスピナーを表示するカスタムアダプターを持っています。アクティビティが再び開いたときに同じアイテムを表示するように、各スピンナーの状態を保存しようとしました。私は別のものを試しましたが、私は成功していません。どうすればこのような感謝を達成できますか?これは私がカスタムアダプターの各スピナーの状態を取得する方法

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; 

} 

答えて

0

SharedPreferencesを試してみましたが、最新のものであるあなたがdaggerのような依存性の注入またはアプリケーションレベルでのカスタムローカルキャッシュのいくつかの種類を使用したくない場合の方法です。スピナーチェックでSharedPreferencesこの回答については

:私は前にsharedpreferencesを使用

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

+0

、私はそれがスピナーがから生成されたスピナー一つだけではないですので、私はsharedpreferencesの各スピナーを救う方法がわかりませんレイアウトと私はそれを表示するカスタムアダプタを使用しています –

+0

私が投稿したリンクを見てください。それはスピナーのためのSharedPrefsに対する答えです。 – tompadre

+0

私は前にsharedpreferencesを使っています。それはうまくいきましたが、私が持っていた問題は、最後のスピナーの状態をとり、すべてのスピナーに使用したので、すべてのスピナーが同じであったということです。アイテム。 –

関連する問題