strings.xmlファイルに下記のようなリストを作成し、それを利用したspinnerを作成しました。
選択された値をsharedpreferencesで保存して、
保存された値を使用してTextviewに表示させたいのですが方法がわかりません。
具体的にはsharedpreferencesに保存までは出来ていて、
それを使用したコードの記載方法がわかりません。
sharedpreferencesから値を設定する際のデフォルト値を設定する箇所に(コード中の※の箇所)
0やspinner.setSelection(0)などを入れてみましたがエラーの連続で、、、
どなたか教えていただけませんでしょうか?
ちなみに男性で値を保存しています。
strings.xml <string-array name="list"> <item>男性</item> <item>女性</item> </string-array>
public class TestFragment extends Fragment { private Spinner spinner; private TextView Text; public TestFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_test, container, false); spinner = (Spinner) view.findViewById(R.id.spinner); Text = (TextView) view.findViewById(R.id.Text); Button save = (Button) view.findViewById(R.id.saveButton); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveButtonClick(); } }); return view; } private void saveButtonClick() { SharedPreferences sp = getActivity().getSharedPreferences("Data", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putInt("SaveData", spinner.getSelectedItemPosition()); String item = (String) spinner.getSelectedItem(); ※Text.setText(sp.getInt("SaveData", spinner.setSelection(0))); editor.commit(); } }
ちなみに
※Text.setText(sp.getInt("SaveData", spinner.setSelection(0)));
このコードの場合のエラーメッセージは
Wrong 2nd argument type. Found: 'void', required: 'int' less...
getInt(String,int)
in SharedPreferences cannot be applied
to(String,void)
※Text.setText(sp.getInt("SaveData", Integer.parseInt(item)));
この場合ですと、
java.lang.NumberFormatException: Invalid int: "男性"
このように出ました。

回答2件
あなたの回答
tips
プレビュー