App soll eingegebene Daten speichern und an anderer Stelle wieder laden

  • 19 Antworten
  • Letztes Antwortdatum
S

soern6

Ambitioniertes Mitglied
3
Okay, die Überschrift ist nicht die beste, aber hier mal grob mein Plan.

Ich schreibe derzeit eine App, bei welcher es im Grunde darum geht, dass der User in einer Aktivität Parameter in Form von Spinnern und Textfelder auswählt, am Ende soll der Button (Create) gedrückt werden und die Daten gespeichert werden.
Die gespeicherten Daten sollen dann an einer anderen Stelle in einer anderen Aktivität (Join) der App geladen werden und über eine Liste,welche sich nach verschieden Parametern sortieren lässt, dargestellt werden.
Grundsätzlich wäre ein Server angebrachter und denkbar, da dieses Speichern und Laden jedoch genau das darstellen soll und vorerst für meine einfachen Zwecke zur Demonstration der Funktion ausreicht, sollte es so passen.

Also:

Gehe ich hier über SavedPreferences, SQLite Database oder Internal Storage zum Speichern der eingegeben Parameter? Es sind genauer gesagt ca. 4-6 Spinner und zwei Textfelder.

Wie kann ich die Daten dann am besten wieder in einer Tabelle in einer anderen Aktivität darstellen? Ist ListView hier das gesuchte Mittel oder was ist besser?

Falls noch Infos benötigt werden nur fragen, bin noch relativ neu dabei und versuche jetzt lediglich den richtigen Ansatz zu finden, sodass ich mich nicht verrenne.

Danke im Voraus und einen schönen Abend,

Sören
 
Ja, benutze die SharedPreferences. Das mit der Tabelle: Brauchst du wirklich eine Tabelle mit mehreren Spalten und Zeilen oder nur eine Liste?
Evtl. möchtest du die Einstellung auch mit Hilfe der Preference API darstellen -> Settings | Android Developers
 
Danke dir für deine Antwort, dann gehe ich die Sache mal mit SharedPreferences an.
Grundsätzlich hätte ich schon gerne eine Liste mit drei Spalten, einfach damit man weiß, worum es in der Zeile geht. Müssen halt auch nicht unbedingt Spalten sein, kann auch irgendwie unter dem Titel stehen oder so...
 
Preferences API wie oben erwähnt mal anschauen ;)
 
So, habe jetzt versucht den ersten Spinner (Alter) und das TextEdit Feld (NDA) mithilfe der Shared Preferences zu speichern, nur leider spuckt der CatLog folgendes aus:

Code:
09-02 15:49:14.908    1966-1966/uni_hannover.sportapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: uni_hannover.sportapp, PID: 1966
    java.lang.IllegalStateException: Could not find a method create__activity(View) in the activity class uni_hannover.sportapp.Cycling_Create for onClick handler on view class android.widget.Button with id 'create_cycling_activity'
            at android.view.View$1.onClick(View.java:4007)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.NoSuchMethodException: create__activity [class android.view.View]
            at java.lang.Class.getMethod(Class.java:664)
            at java.lang.Class.getMethod(Class.java:643)
            at android.view.View$1.onClick(View.java:4000)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Das hier scheint das zentrale Problem zu sein

Code:
Could not find a method create__activity(View) in the activity class uni_hannover.sportapp.Cycling_Create for onClick handler on view class android.widget.Button with id 'create_cycling_activity'

Hier ist die Activity:

Code:
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";

    //Declare Class Variables//

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

        //Initialize Class Variable//

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

        Spinner spinner_alter = (Spinner) findViewById(R.id.spinner_alter);
        // set a listener on spinner
        spinner_alter.setOnItemSelectedListener(this);
        // populate the spinner from data source
        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);

    }

    @Override

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

    public void onNothingSelected(AdapterView<?> parent) {

    }

    public void save (View view) {
        NDA = ((EditText)findViewById(R.id.editNDA)).getText().toString();
        SharedPreferences sharedPreferences = getSharedPreferences(STORAGE_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("NDA",NDA );
        editor.putString("Alter", Alter);
        editor.apply();
        Toast.makeText(getApplicationContext(), "You have been saved!", Toast.LENGTH_LONG).show();
    }

    public void retrieve(View view) {

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

        NDA = sharedPreferences.getString("NDA", "");
        Alter = sharedPreferences.getString("Alter", "");

        setUI();
    }



    protected void setUI(){

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

        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);
            }
        }

    }


    @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);
    }
}

Hier das Layout:

Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="uni_hannover.sportapp.Cycling_Create"
    android:background="#a5e685"
    android:id="@+id/Cycling_Create">

    <ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imageView2"
    android:src="@drawable/cycling"
    android:contentDescription="running_header"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_alter"
        android:entries="@array/Alter"
        android:layout_above="@+id/text_dauer"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editNDA"
        android:hint="@string/Name"
        android:layout_below="@+id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="22dp" />

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_geschlecht"
        android:entries="@array/Geschlecht"
        android:layout_alignTop="@+id/spinner_alter"
        android:layout_toRightOf="@+id/spinner_alter"
        android:layout_toEndOf="@+id/spinner_alter"
        android:layout_marginLeft="36dp"
        android:layout_marginStart="36dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Alter"
        android:id="@+id/text_alter"
        android:layout_above="@+id/spinner_geschlecht"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_dauer"
        android:entries="@array/Dauer"
        android:layout_below="@+id/text_dauer"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Geschlecht"
        android:id="@+id/text_geschlecht"
        android:layout_alignTop="@+id/text_alter"
        android:layout_alignLeft="@+id/spinner_geschlecht"
        android:layout_alignStart="@+id/spinner_geschlecht" />

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_geschwindigkeit"
        android:entries="@array/Geschwindigkeit"
        android:layout_above="@+id/text_streckenprofil"
        android:layout_alignLeft="@+id/text_pace"
        android:layout_alignStart="@+id/text_pace" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Dauer"
        android:id="@+id/text_dauer"
        android:layout_alignTop="@+id/text_pace"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_streckenprofil"
        android:entries="@array/Streckenprofil"
        android:layout_above="@+id/create_cycling_activity"
        android:layout_toLeftOf="@+id/spinner_geschlecht"
        android:layout_toStartOf="@+id/spinner_geschlecht" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ø - Geschwindigkeit"
        android:id="@+id/text_pace"
        android:layout_above="@+id/spinner_geschwindigkeit"
        android:layout_alignLeft="@+id/spinner_geschlecht"
        android:layout_alignStart="@+id/spinner_geschlecht" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Streckenprofil"
        android:id="@+id/text_streckenprofil"
        android:layout_above="@+id/spinner_streckenprofil"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Create"
        android:id="@+id/create_cycling_activity"
        android:background="@drawable/round_button"
        android:backgroundTint="#D9DDDB"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:onClick="create__activity"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPostalAddress"
        android:ems="10"
        android:id="@+id/editText2"
        android:hint="@string/Startpunkt"
        android:layout_below="@+id/editNDA"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Distanz"
        android:id="@+id/textView2"
        android:layout_below="@+id/spinner_geschwindigkeit"
        android:layout_alignLeft="@+id/spinner_geschwindigkeit"
        android:layout_alignStart="@+id/spinner_geschwindigkeit" />

    <Spinner
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_distanz_cycling"
        android:entries="@array/Distanz_Cycling"
        android:layout_alignTop="@+id/spinner_streckenprofil"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignStart="@+id/textView2" />


</RelativeLayout>

Irgendwie komme ich nicht drauf, wo nun der Fehler liegt...
 
Hallo

Du hast deinem Button im Layout angewiesen "create__activity ()" aufzurufen. Du hast aber keine solche Methode in der Klassendeklaration stehen. Von daher kommt dieser Fehler.

Jaiel
 
Wie implementiere ich das ganze denn am besten?

Meine Idee wäre, dass das ganze irgendwie vor das "public void save"-Event müsste?
Stehe da gerade auf dem Schlauch, da ich dachte, den Button schon mit drin zu haben...

Bzw. bin ich denn soweit auf dem richtigen Weg und es fehlt eine Kleinigkeit oder bin ich komplett falsch?Ich muss mir den Kram immer mühsam zusammensuche und probiere dann logisch zu kombinieren...

Update: Habe es jetzt glaube ich geschafft, ich Trottel habe wohl irgendwie gedacht, dass ich was anderes bei android:onClick angeben muss, aber mit android:onClick "save" zeigt er jetzt zumindest den Toast, dass es gespeichert wurde!
 
Zuletzt bearbeitet:
Neuer Tag, neues Problem. Da ich nun mehrere Spinner im Layout habe, bekomme ich es nicht hin, dass die Adapter korrekt definiert werden, jedenfalls schaffe ich es nur, dass ein Spinner gespeichert wird.

Hier ist der gesamte Code:

Javascript:
package uni_hannover.sportapp;


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
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);

        //Initialize Class Variable//

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



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

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

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

    }


    @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< GeschlechtArray.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);
    }
}


Ich glaube aber, dass der Fehler hier liegt, nämlich in der Definition der Adapter


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

        //Initialize Class Variable//

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



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

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

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

    }

Leider konnte ich bis dato keine weiteren Informationen in diverser Literatur oder im Internet dazu finden, wie ich nun diese verdammten Adapter so definiere, dass er mir die unterschiedlichen Spinner speichert und dann lädt....
 
Hallo,
Code:
...
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
getActivity(),
android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.spinnerArray));
mSpinner = (Spinner) mView.findViewById(R.id.spinner);
mSpinner.setAdapter(arrayAdapter);
...

oder nochmal hervorgehoben:
Code:
getResources().getStringArray(R.array.spinnerArray)

PS: Dein Codestyle ist vorsichtig gesagt "unschön" (eigentlich kann man kaum von einem Codestyle sprechen)...
Ich vermute fast, dass du die Grundsätze der OOP noch nicht so 100% durchblickst... Mein Tipp wäre erst die Grundlagen (zB reines Java) zu lernen und dann mit Android weiterzumachen. Dass es anfangs langweilig erscheint, kann ich absolut nachvollziehen und trotzdem kann ich dir ganz sicher sagen, dass du mit Android u.U. deine Zeit verbummelst. :)
(Falls ich falsch liege, überlies' meinen Kommentar einfach^^)
 
Da muss ich dir tatsächlich recht geben. Das Problem ist jedoch, dass ich einen Kurs belegt habe, wo die Klausurersatzleistung eben eine App incl. Hausarbeit ist.
Insgesamt nicht weiter wild, nur fehlt mit leider die Zeit, alles von Grund auf an zu lernen, wobei ich Lust dazu hätte und eben dies danach angehen möchte.
Somit bleibt mit derzeit nur, dass ich mir hier und das Schnipsel zusammensuche, diese probiere etwas zu verstehen und das ganze zum laufen zu bekommen.
Sicherlich kannst du dir genau so vorstellen, wie lange ich brauche, um Fehler auszubügeln, da ich nichtmal weiß, wonach ich suche :D
 
Okay^^ was studierst du? (aus meinem Informatikstudium kann ich dir sagen, dass wenn bei uns Variablen groß geschrieben werden, der Prof. einen Stirnkranzkatarh bekommt und das ein sicherer Grund fürs Nichtbestehen ist :-/ )

Hats damit jetzt geklappt? :)
Ansonsten vielleicht als allgemeiner Tipp das Tutorial gut durcharbeiten und möglichst viel Code daraus entnehmen (vielleicht nicht 1:1 kopieren, aber eben so umsetzen) - gleichzeitig hast du eine zuverlässige Quellenangabe für fundierte Aussagen (<- gerade wenn man zum Klausurersatz noch ein paar Seiten normale "Hausarbeit" / Protokoll verfassen soll, meiner Meinung nach umso wertvoller)
 
Zuletzt bearbeitet:
Haha, gleich auf die Schliche gekommen. Wirtschaftswissenschafter und ein Vertiefer ist WI, wo ich mich für dieses Modul entschieden habe...naja, wenigstens das Layout fanden sie bis jetzt gut :D
 
Jo, in WI ist das wahrscheinlich nicht sooo gravierend (vielleicht wissen es die Profs ja selbst nicht besser^^ - dafür kenne ich mich mit dem Handelsrecht und den Gesellschaftsformen schlecher aus ;) )
 
Glaube mir, aktuell würde ich gerne tauschen, zumindest wäre mein Problem dann wohl weg :D
 
Was funktioniert momentan noch nicht? Gibts eine Fehlermeldung (Logcat)?
 
Logcat spuckt nichts aus, nur vermute ich, dass ich was falsch definiert habe. Fülle ich die drei Spinner mit Daten, so spuckt er mir in der MyShardePreferences Datei lediglich drei Werte aus, nämlich die selben: Männlich Männlich Männlich.
Das hieße ja eigentlich, dass er bei allen Spinnern denken müsste, dass es sich dabei um den Spinner_alter handelt oder er speichert halt drei mal die Daten von Spinner_alter in der Datei...warum? Das weiß ich leider nicht :D
 
Zeig mal den Code zum Speichern, oder uppe mal dein Projekt auf irgendeinen Filehoster ;)

Code:
final Spinner spinner = (Spinner) findViewById(R.id.spinner);ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,android.R.layout.simple_spinner_item, new String[]{"Hallo", "Welt"});spinner.setAdapter(arrayAdapter);spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences sp = getSharedPreferences("test", 0);sp.edit().putString("key", spinner.getSelectedItem().toString()).apply();}

@Overridepublic void onNothingSelected(AdapterView<?> parent) {

}
});
 
Zuletzt bearbeitet:
Habe jetzt eine Nacht drüber geschlafen und leider hat sich nichts geändert :D Ich sehe mir deinen Code gleich mal an, das Projekt ist hier hochgeladen:

SportApp

Wollte mich schonmal für deine Hilfe bedanken!
 
Habe es jetzt danke einem Tipp in einem anderen Forum lösen können. Ich habe einfach OnItemSelectedListener für jeden Spinner gesetzt, das ganze sieht jetzt noch schlimmer aus :D

Javascript:
Spinner spinner_alter = (Spinner) findViewById(R.id.spinner_alter);
        spinner_alter.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Alter = parent.getItemAtPosition(position).toString();
            }

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

            }
        });
        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(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Geschlecht = parent.getItemAtPosition(position).toString();
            }

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

            }
        });
        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(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Dauer = parent.getItemAtPosition(position).toString();
            }

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

            }
        });
        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);

    }
 
Neuer Tag, neues Problem. Wie gesagt speichert er jetzt brav die XML Datei in dem SharedPrefOrdner. Jetzt würde ich diese XML Datei sehr gerne in einer anderen Aktivität laden und irgendwie darstellen, z.B. in einer Tabelle, welche genau diese in der XML Datei angegegeben Kriterien abbildet?

Geht das ganze überhaupt über SharedPref oder muss ich auf Internal oder External Storage umschwanken?
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
596
Gerdchen07
G
L
Antworten
2
Aufrufe
553
Lexub
L
migi01
Antworten
26
Aufrufe
1.985
migi01
migi01
Zurück
Oben Unten