Rot im Editor nach Kopieren von MainActivity -> DialogFragment?

  • Antworten:11
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 213

03.02.2016, 19:54:39 via Website

Ich war gezwungen, eine Methode aus der MainActivity in mein DialogFragment zu kopieren.

Nach dem Einfügen sind nun folgende Stellen rot markiert mit dem cannot-resolve-Hinweis:

openFileInput
*TAG*

Das TAG im Logzusammenhang
Log.e(TAG,"br.close()",e);
kann ich wohl durch eine beliebige Zeichenketten ersetzen (zB "abc")?

openFileInput geht vielleicht in DialogFragments nicht? ALT+Eingabe hilft hier nicht.

— geändert am 03.02.2016, 19:57:39

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

03.02.2016, 19:56:34 via Website

Doch gehen schon, ich nehme aber dann das openFileInput nur der Variablen Name der Klassenvariable ist.
Du musst den Datentyp wissen dann kannst du diese im Fragment neu definieren.

LG Pascal //It's not a bug, it's a feature. :) ;)

Frank Rudolf

Antworten
  • Forum-Beiträge: 213

03.02.2016, 20:01:16 via Website

Pascal,

ich verstehe Dich leider kaum, was vielleicht auch an der Grammatik Deines ersten Satzes liegt :-). Oder an meiner langen Leitung :-).

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

03.02.2016, 20:02:45 via Website

Oh meine Grammatik war gerade echt nicht perfekt... (angry)

Also welcher Datentyp ist die Variable denn?
Wenn du das weisst kannst du diese per Datentyp einfach wieder Definieren und AS weiß wieder was es damit anstellen soll.

— geändert am 03.02.2016, 20:03:10

LG Pascal //It's not a bug, it's a feature. :) ;)

Frank Rudolf

Antworten
  • Forum-Beiträge: 213

03.02.2016, 20:03:59 via Website

Hier ein Ausschnitt bis zum Fehler:

FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;

try
{
    fis = openFileInput("Test.csv");

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

03.02.2016, 20:06:05 via App

Achso sag das doch gleich. Du hast in deiner MainActivity eine Methode mit diesem Namen. Diese brauchst du auch im Fragment.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

03.02.2016, 20:08:57 via App

openFileInput ist eine Methode in deiner MainActivity.
Das Fragment kennt diese nicht also musst du diese Aus der Main in das Fragment kopieren

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 213

03.02.2016, 20:13:56 via Website

Achso sag das doch gleich. Du hast in deiner MainActivity eine Methode
mit diesem Namen. Diese brauchst du auch im Fragment.

Ja.

Im Endeffekt werde ich doch per Bundle etc. meine Werte übergeben müssen.

Diese Notlösung ist nun wieder nötig, weil beim Übergang von der Activity zum Fragment meine Arraylist im Nirvana verschwindet. Variablenübergabe nach dem gestrigen Prinzip macht auch logische Probleme, weil dieser Wert im Fragment auch erhöht werden kann. Dies würde ich ja noch austricksen können, aber dann doch besser mit dem Königsweg über Bundles etc.

Hintergrund:
Es geht um die Ermittlung der höchsten ID in der Textdatei, um eine neue ID zu erstellen (alte MaxID +1). Wenn ich zB dreimal einen neuen Datensatz anlege, bleibt dieser Wert gleich, weil ich immer noch auf denselben Wert zugreife, den ich mir beim Übergang von der Activity zum Fragment rüberholte (nach dem gestrigen Prinzip).

Aber das ist nur nebensächlich und das mußt Du nicht verstanden haben :-).

— geändert am 03.02.2016, 20:15:14

Antworten
  • Forum-Beiträge: 213

03.02.2016, 20:16:09 via Website

openFileInput ist eine Methode in deiner MainActivity. Das Fragment
kennt diese nicht also musst du diese Aus der Main in das Fragment
kopieren

Ja und dann kommen die roten Fehler.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

03.02.2016, 20:17:02 via App

Jup das ist das einfachste. Dann musst du rausbekommen warum die Liste weg ist

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel