2016-05-27 14 views
0

選択したアイテムをスピナーから保存しておきたい場合は、前回選択したアイテムを選択して試しても取得できません。SharedPreferencesを使用してSpinnerから選択したアイテムを取得して設定する方法

ボタンの選択位置のみを保存する必要があります。私が使用していた

これは、コードは次のとおりです。

spinner_level = (Spinner)rootView.findViewById(R.id.spinner_activity_level); 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(rootView.getContext(), R.array.activity_level, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
spinner_level.setAdapter(adapter); 
spinner_level.setGravity(Gravity.CENTER); 
spinner_level.getSelectedItemPosition(); 

spinner_level.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
{ 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    { 
     ((TextView) parentView.getChildAt(0)).setTextColor(Color.BLACK); 
     selected = parentView.getItemAtPosition(position).toString(); 
    } 

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

    } 
}); 
+0

あなたは 'SharedPreferences'に値を保存しようとしましたか? –

+0

私はそれについて、スピナーのためのやり方を全く知らない。 –

+0

スピナーの初期化のたびに値を設定する必要があります。あなたのフラグメントの 'onCreate'にあります。 – Vucko

答えて

0

@Override 
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
{ 
    ((TextView) parentView.getChildAt(0)).setTextColor(Color.BLACK); 
    selected = parentView.getItemAtPosition(position).toString(); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putInt("selectionIndex", position); 
    editor.apply(); 
} 

SharedPreferences sharedPreferencesをあなたが適切と思わonAttachかで初期化しますあなたのFramgentのフィールドでなければなりません。そしてまた、あなたはそれを変更するたびに新しい値を設定する必要がありますeditor.putInt( "VALUE"、spinner.getSelectedItemPosition());を使用しました。

0

あなたはあなたがスピナーを初期化するたびに、選択した値を設定する必要があり、このコードはすでに存在FramgentのonCreateView

spinner_level = (Spinner)rootView.findViewById(R.id.spinner_activity_level); 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(rootView.getContext(), R.array.activity_level, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
spinner_level.setAdapter(adapter); 
spinner_level.setGravity(Gravity.CENTER); 
spinner_level.getSelectedItemPosition(); 
int indexOfPreviousSelection = sharedPreferences.getInt("selectionIndex", 0); 
spinner_level.setSelection(indexOfPreviousSelection); 

をあなたindexOfPreviousSelectionSharedPreferencesから取得する必要がある、私はあなたがそれを行う方法を知っていると推測します。私は

@Override 
protected void onAttach(Context context) { 
    super.onAttach(context); 
    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
+0

サンプルコードは私にとってもっとはっきりしています。 –

+0

はい、編集しました。 – Vucko

+0

nullポインター例外が発生しています。05-30 11:16:17.655:E/AndroidRuntime(1217):java.lang.NullPointerException:インターフェイスメソッド 'android.content.SharedPreferences $ Editor android.content.SharedPreferences $ Editorを呼び出しようとしました。 –

関連する問題