0

私には4つのEditText価値があります。後で取得するために値を保存しますSharedPreferences。保存した後、スピナーをクリックしてそれらの値を取得する必要があります。いくつかのドキュメントを検索しましたが、明確に理解できませんでした。edittext から et 値のみを取得する必要があります。edittext に別の値を再入力する場合は、2 つのボタンでスピナー値を増やす必要があります。

コード:

アクティビティ:

final Map<String, String> demomap = new HashMap<String, String>();

demomap.put(et.getText().toString(), et1.getText().toString());
demomap.put(et2.getText().toString(), et3.getText().toString());
SharedPreferences preferences = getSharedPreferences("CREATE_MEAL",
        0);
SharedPreferences.Editor editor = preferences.edit();
for (Entry<String, String> entry : demomap.entrySet()) {
    editor.putString(entry.getKey(), entry.getValue());
}
editor.commit();

アクティビティ 1:

spinner = (Spinner)findViewById(R.id.spinner1);
demomap = new HashMap<String, String>();
SharedPreferences preferences = getSharedPreferences("CREATE_MEAL", 0);
for (Entry<String, ?> entry : preferences.getAll().entrySet()) {
    demomap.put(entry.getKey(), entry.getValue().toString());
}

Iterator myVeryOwnIterator = demomap.keySet().iterator();

while (myVeryOwnIterator.hasNext()) {
    String key = (String) myVeryOwnIterator.next();
    String value = (String) demomap.get(key);

    spinner.setText(value);
}
4

1 に答える 1

0

Spinners tutorialを確認することをお勧めします。スピナー用に適切な(目的にはArrayAdapterAdapterで十分だと思います)作成して更新する必要があるようです。次に、スピナーのデータを更新する必要があります。

アクティビティ 1で次のように実行できます。

    Spinner spinner = (Spinner)findViewById(R.id.spinner1);
    demomap = new ArrayList<String>();

    SharedPreferences preferences = getSharedPreferences("CREATE_MEAL", 0);
    for (Map.Entry<String, ?> entry : preferences.getAll().entrySet()) {
        demomap.add(entry.getValue().toString());
    }

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, demomap);
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    spinner.setAdapter(adapter);
于 2013-09-23T06:56:49.453 に答える