Probleme mit Spinnern und deren Adapter

  • 1 Antworten
  • Letztes Antwortdatum
S

soern6

Ambitioniertes Mitglied
3
Moin,

habe aktuell Probleme damit, den verschiedenen Spinnern in meiner App die Adapter zuzuteilen und diese dann in den Shared Preferences zu speichern.
Bei der Zuteilung der ArrayAdapter habe ich immer die von Android Studio vorgeschlagenen genutzt, also set Adapter, adapter1, adapter2, etc.
Beim Versuch, die eingegebenen Daten der Spinner nun zu speichern, wird lediglich einer beim holen der Daten über die Retrieve Methode wiederhergestellt...

Ich glaube ich habe auch schon viele Varianten probiert, aber nichts half. Ebenso war es im Netz schwierig, etwas Vergleichbares zu finden...

Nachtrag: Habe mal in der Shared Preferences Datei nachgesehen: Fülle ich nur die Spinner mit Werten (Alter, Geschlecht, Dauer), so spuckt die Datei lediglich Männlich Männlich Männlich aus. Also muss ja irgendwas mit den Arrays und Adapte-Zuteilung nicht hinhauen...

Hier ist mal der Code:

Javascript:
package uni_hannover.sportapp;


import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;




public class Cycling_Create extends Activity implements AdapterView.OnItemSelectedListener {

    //Declare Class Variables//


    private String NDA;
    private String Startpunkt;
    private String Alter;
    private String Geschlecht;
    private String Dauer;
    private String Geschwindigkeit;
    private String Streckenprofil;
    private String Distanz;
    public static final String STORAGE_NAME="MySharedPreferences";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cycling__create);


        NDA = "";
        Startpunkt = "";
        Alter = "";
        Geschlecht = "";
        Dauer = "";
        Geschwindigkeit = "";
        Streckenprofil = "";
        Distanz = "";




        Spinner spinner_alter = (Spinner) findViewById(R.id.spinner_alter);
        spinner_alter.setOnItemSelectedListener(this);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.Alter, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_alter.setAdapter(adapter);

        Spinner spinner_geschlecht = (Spinner) findViewById(R.id.spinner_geschlecht);
        spinner_geschlecht.setOnItemSelectedListener(this);
        ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this,
                R.array.Geschlecht, android.R.layout.simple_spinner_item);
        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_geschlecht.setAdapter(adapter1);

        Spinner spinner_dauer = (Spinner) findViewById(R.id.spinner_dauer);
        spinner_dauer.setOnItemSelectedListener(this);
        ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,
                R.array.Dauer, android.R.layout.simple_spinner_item);
        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_dauer.setAdapter(adapter2);

    }


    @Override

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Alter = parent.getItemAtPosition(position).toString();
        Geschlecht = parent.getItemAtPosition(position).toString();
        Dauer = parent.getItemAtPosition(position).toString();
    }

    public void onNothingSelected(AdapterView<?> parent) {

    }



    public void save(View view) {
        NDA = ((EditText)findViewById(R.id.editNDA)).getText().toString();
        Startpunkt = ((EditText)findViewById(R.id.editText2)).getText().toString();

        SharedPreferences sharedPreferences = getSharedPreferences(STORAGE_NAME, Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("NDA",NDA );
        editor.putString("Startpunkt",Startpunkt);
        editor.putString("Alter", Alter);
        editor.putString("Geschlecht", Geschlecht);
        editor.putString("Dauer",Dauer);

        editor.apply();

        Toast.makeText(getApplicationContext(), "Activity has been saved!", Toast.LENGTH_LONG).show();
    }


    public void retrieve(View view) {

        SharedPreferences sharedPreferences=getSharedPreferences(STORAGE_NAME, Context.MODE_PRIVATE);

        NDA = sharedPreferences.getString("NDA", "");
        Startpunkt = sharedPreferences.getString("Startpunkt","");
        Alter = sharedPreferences.getString("Alter", "");
        Geschlecht = sharedPreferences.getString("Geschlecht","");
        Dauer = sharedPreferences.getString("Dauer","");

        setUI();
    }



    protected void setUI(){

        ((TextView)findViewById(R.id.editNDA)).setText(NDA);
        ((TextView)findViewById(R.id.editText2)).setText(Startpunkt);

        Resources resource = getResources();

        String[] AlterArray = resource.getStringArray(R.array.Alter);

        for(int i = 0; i < AlterArray.length; i++){
            if(AlterArray[i].equals(Alter)){
                ((Spinner)findViewById(R.id.spinner_alter)).setSelection(i);
            }
        }

        String[] GeschlechtArray = resource.getStringArray(R.array.Geschlecht);

        for (int i = 0; i< GeschlechtArray.length; i++){
            if(GeschlechtArray[i].equals(Geschlecht)){
                ((Spinner)findViewById(R.id.spinner_geschlecht)).setSelection(i);
            }
        }

        String[] DauerArray = resource.getStringArray(R.array.Dauer);

        for (int i=0; i< DauerArray.length; i++){
            if(DauerArray[i].equals(Dauer)){
                ((Spinner)findViewById(R.id.spinner_dauer)).setSelection(i);
            }
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_cycling__create, menu);
        return true;
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
 
Zuletzt bearbeitet:
Hallo,
der zweite Thread wäre nicht nötig gewesen (glaube ich)^^
Schau mal in deinem alten Thread nach ;)
Btw: auf Stackoverflow wurde das Problem unter dem gleichen Titel bereits x-fach thematisiert..
 
Zurück
Oben Unten