Eingabefeld in eine Datei speichern fehlerhaft

  • Antworten:10
sabine meier
  • Forum-Beiträge: 5

20.12.2011, 15:03:01 via Website

Hallo liebe community,

ich bin neuling was android angeht und benötige eure Hilfe.
Also ich habe in meinem APP mehrere Eingabefelder , dessen inhalt ich in eine Datei speichern will.
Ich habe schon etliche Foren durchsucht aber ich komme einfach nicht weiter.

mein Idee ist so:

EditText name = (EditText)findViewById(R.id.name_Text); // so wird das Eingabefel ausgelesen
String fahrer = name.getText().toString(); // Hier soll er die Eingabe in ein String umwandeln

Wenn ich das in mein Quellcode rein schreibe stürzt mein app ab und gibt ne fehlermeldung aus.
Sobald ich die 2 zeilen auskommentiere läuft es ohne Probleme. :(:(

Danke schon mal im voraus.

Liebe Grüße Sabine

Antworten
tom_cat
  • Forum-Beiträge: 11.132

20.12.2011, 15:16:20 via Website

Hallo Sabine,

ein herzliches Willkommen auf AndroidPIT und noch viel Spaß bei uns.

Ich verschiebe "Dich" mal in den Dev. Bereich. Da passt deine Frage besser...

Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand. Arthur Schopenhauer App Reviews nach Einsatzzweck und hier noch das: Das-AndroidPITiden-Buch

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.12.2011, 15:22:27 via App

Hast du den Code schon einmal debugt? Ansonsten wäre die xml noch hilfreich :)
MfG Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

20.12.2011, 15:46:02 via Website

setContentView nicht aufgerufen...

swordiApps Blog - Website

Antworten
sabine meier
  • Forum-Beiträge: 5

20.12.2011, 17:04:14 via Website

Also ich hab da ne vermutung warum es nicht geht:

Erstmal zum quellcode, ich habe 2 klassen einmal Activity.java und Start.java

in Activity.java rufe ich die main.xml auf( dort sind eingabefelder und ein button festgelegt)
und dort in der Activity.java prüfe ich ob die eingabefeler leer sind :
EditText nameText =(EditText)findViewById(R.id.name_Text);
String name =nameText.getText().toString();
if (name.length()==0){
test=R.string.error_Ziel;
fehlerausgabe();

Hier wandel ich ja schon die eingabefelder in ein string.
Wenn Eingafeld leer dann kommt eine Fehlermeldung ansonsten ruft er die classe Start.java auf
diese verwendet die programmstart.xml ( dort ist nur ein button ). sobald der button gedrückt wurde soll gespeichert werden.

Das würde ja eingentlich bedeuten das ich den string aus der Activity,java an die Start.java übergen muss.
da müsste ja so gehen :
name = getIntent().getStringExtra(name); // in die Activity klasse

funktioniert aber nicht :(

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

20.12.2011, 18:23:23 via App

Hm,
was sagt denn der Stacktrace im Logcat?
Lg Ansgar

Antworten
sabine meier
  • Forum-Beiträge: 5

20.12.2011, 18:52:47 via Website

Ich bin jetzt mittlerweile so weit das ich weiss das ich die variable übergeben muss. ICh hab es ma mit system.out.println(name); geteste
auf der Activity.java seite hat er noch die Eingabe dann zeigt er auch (zb) system.out.println müller.
und wenn er zur nächsten seite geht (Start.java) und ich wieder system.out.println(name); mache kommt null raus.

ich brauche ein vernünftigen Befehl wie ich ein String übergebe. Im moment steht nur der oben genanten Befehl in der Activity.java für die übergabe. Es muss doch noch irgendwas in die Start.java

Es wäre nett wenn einer vill ein tutorial oder ein Befehl hätte :(
Ich bin schon langsam am verzweifeln .

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

20.12.2011, 18:58:06 via Website

musst dem intent den String auch geben.

intent.putExtra(name);

swordiApps Blog - Website

Antworten
sabine meier
  • Forum-Beiträge: 5

20.12.2011, 19:31:35 via Website

so hab ich es auch schon versucht dann kommt in der Klasse schon der Fehler : The method putExtra(String,boolean) in the type Intent is not applicable for the arguments (String):(

Antworten
Felix
  • Forum-Beiträge: 259

20.12.2011, 22:23:44 via Website

Tach!

ich brauche ein vernünftigen Befehl wie ich ein String übergebe. Im moment steht nur der oben genanten Befehl in der Activity.java für die übergabe. Es muss doch noch irgendwas in die Start.java

Ich denke, du brauchst erst einmal eine vernünftige Übersicht, wie Android-Programmierung funktioniert. Es ist nicht wie bei Desktop-Programmierung, wo in einer Anwendung ein Fenster in ein anderes greifen kann. Activitys leben für sich. Es gibt einen Activity Lifecycle. Sobald eine Activity gestartet wird, geht die bisherige zumindest schlafen. Sie kann auch vom System komplett beendet und aus dem Speicher geräumt werden. Schon deshalb kann es kein Hinübergreifen geben. Es sieht mir nicht aus, als ob du diesen bedeutenden Unterschied zwischen den Systeme schon verinnerlicht hast. Zumindest bist du ja schon bei Intents angelangt. Aber auch hier sehe ich kein gezieltes Informieren sondern ein Stochern im Nebel, vielleicht ist ja irgendwann zufälligerweise die Lösung aufgespießt.

Besser wäre es, zumindest mal die Android-Einsteiger-Tutorials durchzuarbeiten. Im Notepad-Tutorial werden Intents behandelt und wie man damit von einer zu einer anderen Activity kommuniziert.

Außerdem ist aus deinen Problembeschreibungen nicht nachvollziehbar, wo genau das jeweilige Problem liegt. Der Code aus deinem ersten Posting funktioniert einwandfrei - wenn man in derselben Activity bleibt. Ein Abstürzen ist nicht nachvollziehbar - ohne das Wissen um deine konkrete Situation. Im nächsten Post kommt die Information über die Zwei-Activity-Situation, aber was du mit den Intents anstellst ist nicht genau zu erkenne. In der nächsten Problembeschreibung gehts es weiter, aber was ich bisher vermisse ist ein Eingehen auf die gegebenen Antworten. Die scheinen mit total ignoriert zu werden. Mit so einem Antwortstil (der mir häufig bei Frauen auffällt) macht man sich übrigens keine Freunde.


Felix.

Antworten