Intents...

  • 27 Antworten
  • Letztes Antwortdatum
P

paxis

Fortgeschrittenes Mitglied
0
Hallo Leute,

ich hab nen kleines Problem mit Intents und der Programmierung von mehrseitigen Apps:

Sie besteht aus 3 Klassen, die gerade relevant sind:
-Main
-LadenBildschirm
-SpielBildschirm

Dazu auszugsweise alles wichtige:
Main:
Code:
    switch(v.getId()) {
        
        case R.id.btStart:
            Intent intent = new Intent();
            intent.setClass(this, LadenBildschirm.class);
            
            startActivity(intent);
            break;
-> Dieser wechsel funktioniert!

Laden:
Code:
switch(v.getId()) {
    case R.id.bTSpiel1S:
            aktuellerText=(String) Anzeige.getText();
            
            Intent intent = new Intent(this, SpielBildschirm.class);;
        
            
            startActivity(intent);
             break;

Dieser Wechsel funktioniert nicht!

Alles aus der Manifest:
Code:
<activity
            android:name="de.devMik.textadventure.LadenBildschirm">
            
        </activity>
        
          <activity
            android:name="de.devMik.textadventure.SpielBildschirm">
            
        </activity>

Folgender Fehler:
Code:
07-10 18:52:02.172: E/AndroidRuntime(796): FATAL EXCEPTION: main
07-10 18:52:02.172: E/AndroidRuntime(796): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.devMik.textadventure/de.devMik.textadventure.SpielBildschirm2}: java.lang.NullPointerException
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.os.Looper.loop(Looper.java:137)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread.main(ActivityThread.java:5041)
07-10 18:52:02.172: E/AndroidRuntime(796):     at java.lang.reflect.Method.invokeNative(Native Method)
07-10 18:52:02.172: E/AndroidRuntime(796):     at java.lang.reflect.Method.invoke(Method.java:511)
07-10 18:52:02.172: E/AndroidRuntime(796):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-10 18:52:02.172: E/AndroidRuntime(796):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-10 18:52:02.172: E/AndroidRuntime(796):     at dalvik.system.NativeStart.main(Native Method)
07-10 18:52:02.172: E/AndroidRuntime(796): Caused by: java.lang.NullPointerException
07-10 18:52:02.172: E/AndroidRuntime(796):     at de.devMik.textadventure.SpielBildschirm2.onCreate(SpielBildschirm2.java:26)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.Activity.performCreate(Activity.java:5104)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-10 18:52:02.172: E/AndroidRuntime(796):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-10 18:52:02.172: E/AndroidRuntime(796):     ... 11 more

Hat jemand ne Ahnung was falsch ist? ^^
 
SpielBikdschirm2 Zeile 26 hat keinen Wert...

Gesendet von meinem Nexus 10 mit der Android-Hilfe.de App
 
Wie meinst du das?
Ah moment....

Was der Fehler denn daran:
Code:
private LadenBildschirm lB;protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spielbildschirm2);

    
    zähler2=lB.gibZähler();//Zeile 26
 
IB nicht initialisiert?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Stimmt.

Verdammt....
Öhm wie initialisiere ich den denn nochmal? :)
Ist ja vom Typ LadenBildschirm, damit ich auf die Methode gibZähler von der zugreifen kann... .

Create geht ja schlecht...

Steh gerade aufm Schlauch.... Liegt vermutlich anner Zeit ^^
 
Naja einfach so kannst du da nicht ran. Kommst du denn von dem ladebildschirm oder von wo startest du die Activity mit der onCreate Methode oben?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Jop ich komme vom LadeBildschirm :)
 
Immer? Und Zähler ist ne Zahl einfach?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Jo einfach ne zahl die einmal abgerufen wird

Erstellt mit einem Samsung galaxy, genauer mit dem s+ :D
 
Dann übergib die doch mit dem intent, mit dem du die activity aufrufst.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Jo danke!
Funktioniert alles jetzt so wies soll :)!

Danke euch nochmal für die Auffrischung des Wissens :D!
 
Vielleicht passt mein Beitrag von vorhin doch besser zu diesem alten hier, daher mal hier gepostet:
Da wäre ich nochmal... :D

Jetzt geht es aber um etwas anderes:

Ich möchte nun eine Art Inventar speichern für ein Spiel welches ich mit Freunden entwickle!
Das ganze soll in einem .txt Dokument gespeichert werden.
Die Klasse dazu sieht folgendermaßen aus:
Code:
package de.devMik.textadventure;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Inventar {

    
 public void Inventarcreate(){
     int Leben=100;
     int Angriff=10;
     int Deff=10;
     int Lebenstränke=1;
     
     try {
         File myFile = new File("/sdcard/savegame.txt");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
    
    OutputStreamWriter myOutWriter = 
                            new OutputStreamWriter(fOut);
    myOutWriter.append(Leben + "\n");//Leben
    myOutWriter.append(Angriff + "\n");//Angriff
    myOutWriter.append(Deff + "\n");//Deff
    myOutWriter.append(Lebenstränke + "\n");//Lebenstränke
    
    myOutWriter.close();
    fOut.close();} catch (Exception e) {}
    
     
 }
    
    public int InventarLeben(){
         int Leben = 0;
         int Angriff;
         int Deff;
         int Lebenstränke;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Leben;
    
    
}
    
    public int InventarAngriff(){
         int Leben = 0;
         int Angriff=0;
         int Deff;
         int Lebenstränke;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Angriff;
    
    
}
    public int InventarDeff(){
         int Leben = 0;
         int Angriff;
         int Deff=0;
         int Lebenstränke;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Deff;
    
    
}
    public int InventarLebenstränke(){
         int Leben = 0;
         int Angriff;
         int Deff;
         int Lebenstränke = 0;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Lebenstränke;
    
    
}

 public void Lebenändern (int Leben){

     try {
            File myFile = new File("/sdcard/savegame.txt");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter = 
                                    new OutputStreamWriter(fOut);
            myOutWriter.append(Leben + "\n");
            myOutWriter.append(InventarAngriff()+ "\n");
            myOutWriter.append(InventarDeff() + "\n");
            myOutWriter.append(InventarLebenstränke() + "\n");
            
            myOutWriter.close();
            fOut.close();
            
        } catch (Exception e) {
            
        }}
     

     public void Angriffändern (int Angriff){

         try {
                File myFile = new File("/sdcard/savegame.txt");
                myFile.createNewFile();
                FileOutputStream fOut = new FileOutputStream(myFile);
                OutputStreamWriter myOutWriter = 
                                        new OutputStreamWriter(fOut);
                myOutWriter.append(InventarLeben() + "\n");
                myOutWriter.append(Angriff+ "\n");
                myOutWriter.append(InventarDeff() + "\n");
                myOutWriter.append(InventarLebenstränke() + "\n");
                
                myOutWriter.close();
                fOut.close();
                
            } catch (Exception e) {
                
            }
     }

         public void Deffändern (int Deff){

             try {
                    File myFile = new File("/sdcard/savegame.txt");
                    myFile.createNewFile();
                    FileOutputStream fOut = new FileOutputStream(myFile);
                    OutputStreamWriter myOutWriter = 
                                            new OutputStreamWriter(fOut);
                    myOutWriter.append(InventarLeben() + "\n");
                    myOutWriter.append(InventarAngriff()+ "\n");
                    myOutWriter.append(Deff + "\n");
                    myOutWriter.append(InventarLebenstränke() + "\n");
                    
                    myOutWriter.close();
                    fOut.close();
                    
                } catch (Exception e) {
                    
                }
         }
         public void Lebenstränkeändern (int Lebenstränke){

             try {
                    File myFile = new File("/sdcard/savegame.txt");
                    myFile.createNewFile();
                    FileOutputStream fOut = new FileOutputStream(myFile);
                    OutputStreamWriter myOutWriter = 
                                            new OutputStreamWriter(fOut);
                    myOutWriter.append(InventarLeben() + "\n");
                    myOutWriter.append(InventarAngriff()+ "\n");
                    myOutWriter.append(InventarDeff() + "\n");
                    myOutWriter.append(Lebenstränke + "\n");
                    
                    myOutWriter.close();
                    fOut.close();
                    
                } catch (Exception e) {
                    
                } 
             
     
 }
 }
Jetzt wo es abstürtzt:
Code:
  case R.id.btInv:
           Inventar inv = new Inventar();
           int Leben= inv.InventarLeben();
           int Angriff = inv.InventarAngriff();
           int Deff = inv.InventarDeff();
           int Lebenstranke= inv.InventarLebenstränke();
           
           Intent intent3 = new Intent();
           Bundle inventar = new Bundle();
            inventar.putInt("datenpaket", Leben);
            inventar.putInt("datenpaket2", Angriff);
            inventar.putInt("datenpaket3", Deff);
            inventar.putInt("datenpaket4", Lebenstranke);
            intent3.putExtras(inventar);
            
            intent3.setClass(this, InventarBildschirm.class);
            startActivity(intent3);
break;
Das ganze soll folgendes starten:
Code:
package de.devMik.textadventure;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class InventarBildschirm extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.inventar); 
        Inventar inv = new Inventar();
      
        TextView TLeben= (TextView) findViewById(R.id.tVLeben);
        TextView TAngriff =(TextView) findViewById(R.id.tVAngriff);
        TextView TDeff = (TextView) findViewById(R.id.tVDeff);
        TextView TLebenstränke = (TextView) findViewById(R.id.tVLebenstraenke);
        Bundle zielkorb = getIntent().getExtras();
        int Leben = zielkorb.getInt("datenpaket");
        int Angriff = zielkorb.getInt("datenpaket2");
        int Deff= zielkorb.getInt("datenpaket3");
        int Lebenstranke = zielkorb.getInt("datenpaket4");
        TLeben.setText(Leben);
        TAngriff.setText(Angriff);
        TDeff.setText(Deff);
        TLebenstränke.setText(Lebenstranke);
        
}
    
}
Alles von der App funktioniert, nur dieses aufrufen nicht!

Zur Manifest datei:
Code:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Permissions sind damit auch dabei.

Auch die Activity wurde eingetragen.
Code:
<activity
            android:name="de.devMik.textadventure.InventarBildschirm">
            
        </activity>
          <activity
            android:name="de.devMik.textadventure.Inventar">
            
        </activity>
fehlercode:
07-14 17:07:52.398: E/AndroidRuntime(818): FATAL EXCEPTION: main
07-14 17:07:52.398: E/AndroidRuntime(818): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.devMik.textadventure/de.devMik.textadventure.InventarBildschirm}: java.lang.NullPointerException
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.os.Handler.dispatchMessage(Handler.java:99)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.os.Looper.loop(Looper.java:137)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-14 17:07:52.398: E/AndroidRuntime(818): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 17:07:52.398: E/AndroidRuntime(818): at java.lang.reflect.Method.invoke(Method.java:511)
07-14 17:07:52.398: E/AndroidRuntime(818): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-14 17:07:52.398: E/AndroidRuntime(818): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-14 17:07:52.398: E/AndroidRuntime(818): at dalvik.system.NativeStart.main(Native Method)
07-14 17:07:52.398: E/AndroidRuntime(818): Caused by: java.lang.NullPointerException
07-14 17:07:52.398: E/AndroidRuntime(818): at de.devMik.textadventure.InventarBildschirm.onCreate(InventarBildschirm.java:23)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.Activity.performCreate(Activity.java:5104)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-14 17:07:52.398: E/AndroidRuntime(818): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-14 17:07:52.398: E/AndroidRuntime(818): ... 11 more


Jemand ne Ahnung woran es liegt?
 
Was steht in Zeile 23 von InventarBildschirm? Ist die onCreate Methode

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Code:
    TLeben.setText(String.valueOf(Leben));

Quellcode davor und danach:
Code:
        TextView TLeben= (TextView) findViewById(R.id.tVLeben);
        TextView TAngriff =(TextView) findViewById(R.id.tVAngriff);
        TextView TDeff = (TextView) findViewById(R.id.tVDeff);
        TextView TLebenstränke = (TextView) findViewById(R.id.tVLebenstraenke);
        Bundle zielkorb = getIntent().getExtras();
        int Leben = zielkorb.getInt("datenpaket");
        int Angriff = zielkorb.getInt("datenpaket2");
        int Deff= zielkorb.getInt("datenpaket3");
        int Lebenstranke = zielkorb.getInt("datenpaket4");
        TLeben.setText(String.valueOf(Leben));
        TAngriff.setText(String.valueOf(Angriff));
        TDeff.setText(String.valueOf(Deff));
        TLebenstränke.setText(String.valueOf(Lebenstranke));

Angriff, Deff und tranke gibt er aber zurück...
 
Hast du die Zeile mal auskommentier oder woher weisst du, das der Rest geht?
Hast du dir mal die .txt Datei angeschaut?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Vacutainer schrieb:
Hast du die Zeile mal auskommentier oder woher weisst du, das der Rest geht?
Hast du dir mal die .txt Datei angeschaut?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App


Jop hab sie ausgeklammert...

Die .txt datei hab ich mir noch nicht angeschaut....

Edit:

Ja er schreibt die Werte in die txt!
 
Zuletzt bearbeitet:
Dann schreib mal
Code:
inventar.putInt("datenpaket", 42);
Wo du die activity startest.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Also mit 42 funktioniert das ganze auch nicht...

hier mal alle Klassen:
Inventar:
Code:
package de.devMik.textadventure;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.widget.Toast;

public class Inventar {

    
 public void Inventarcreate(){
     int Leben=100;
     int Angriff=10;
     int Deff=10;
     int Lebenstränke=1;
     
     try {
         File myFile = new File("/sdcard/savegame.txt");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
    
    OutputStreamWriter myOutWriter = 
                            new OutputStreamWriter(fOut);
    myOutWriter.append(Leben + "\n");//Leben
    myOutWriter.append(Angriff + "\n");//Angriff
    myOutWriter.append(Deff + "\n");//Deff
    myOutWriter.append(Lebenstränke + "\n");//Lebenstränke
    
    myOutWriter.close();
    fOut.close();
    
    } catch (Exception e) {}
    
    
     
 }
    
    public int InventarLeben(){
         int Leben1 = 0;
         int Angriff1;
         int Deff1;
         int Lebenstränke1;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<4; i++){
                if(i == 0){
                    Leben1 = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff1 = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff1= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke1 =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Leben1;
    
    
}
    
    public int InventarAngriff(){
         int Leben2 = 0;
         int Angriff2=0;
         int Deff2;
         int Lebenstränke2;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben2 = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff2 = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff2= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke2 =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Angriff2;
    
    
}
    public int InventarDeff(){
         int Leben3 = 0;
         int Angriff3;
         int Deff3=0;
         int Lebenstränke3;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben3 = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff3 = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff3= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke3 =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Deff3;
    
    
}
    public int InventarLebenstränke(){
         int Leben4 = 0;
         int Angriff4;
         int Deff4;
         int Lebenstränke4 = 0;
        try {
            File myFile = new File("/sdcard/savegame.txt");
            FileInputStream fIn = new FileInputStream(myFile);
            BufferedReader myReader = new BufferedReader(
                    new InputStreamReader(fIn));
            String aDataRow = "";
            String aBuffer = "";
            /*while ((aDataRow = myReader.readLine()) != null) {
                aBuffer += aDataRow + "\n";
            }*/
            for(int i= 0; i<6; i++){
                if(i == 0){
                    Leben4 = Integer.parseInt(myReader.readLine());
                }
                if(i == 1){
                    Angriff4 = Integer.parseInt(myReader.readLine());
                }
                if(i == 2){
                    Deff4= Integer.parseInt(myReader.readLine());
                }
                if(i == 3){
                    Lebenstränke4 =Integer.parseInt(myReader.readLine());
                }
                
            }
            myReader.close();
            
            
        } catch (Exception e) {
            
        }
        return Lebenstränke4;
    
    
}

 public void Lebenändern (int Leben){

     try {
            File myFile = new File("/sdcard/savegame.txt");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter = 
                                    new OutputStreamWriter(fOut);
            myOutWriter.append(Leben + "\n");
            myOutWriter.append(InventarAngriff()+ "\n");
            myOutWriter.append(InventarDeff() + "\n");
            myOutWriter.append(InventarLebenstränke() + "\n");
            
            myOutWriter.close();
            fOut.close();
            
        } catch (Exception e) {
            
        }}
     

     public void Angriffändern (int Angriff){

         try {
                File myFile = new File("/sdcard/savegame.txt");
                myFile.createNewFile();
                FileOutputStream fOut = new FileOutputStream(myFile);
                OutputStreamWriter myOutWriter = 
                                        new OutputStreamWriter(fOut);
                myOutWriter.append(InventarLeben() + "\n");
                myOutWriter.append(Angriff+ "\n");
                myOutWriter.append(InventarDeff() + "\n");
                myOutWriter.append(InventarLebenstränke() + "\n");
                
                myOutWriter.close();
                fOut.close();
                
            } catch (Exception e) {
                
            }
     }

         public void Deffändern (int Deff){

             try {
                    File myFile = new File("/sdcard/savegame.txt");
                    myFile.createNewFile();
                    FileOutputStream fOut = new FileOutputStream(myFile);
                    OutputStreamWriter myOutWriter = 
                                            new OutputStreamWriter(fOut);
                    myOutWriter.append(InventarLeben() + "\n");
                    myOutWriter.append(InventarAngriff()+ "\n");
                    myOutWriter.append(Deff + "\n");
                    myOutWriter.append(InventarLebenstränke() + "\n");
                    
                    myOutWriter.close();
                    fOut.close();
                    
                } catch (Exception e) {
                    
                }
         }
         public void Lebenstränkeändern (int Lebenstränke){

             try {
                    File myFile = new File("/sdcard/savegame.txt");
                    myFile.createNewFile();
                    FileOutputStream fOut = new FileOutputStream(myFile);
                    OutputStreamWriter myOutWriter = 
                                            new OutputStreamWriter(fOut);
                    myOutWriter.append(InventarLeben() + "\n");
                    myOutWriter.append(InventarAngriff()+ "\n");
                    myOutWriter.append(InventarDeff() + "\n");
                    myOutWriter.append(Lebenstränke + "\n");
                    
                    myOutWriter.close();
                    fOut.close();
                    
                } catch (Exception e) {
                    
                } 
             
     
 }
 }

InventarBildschirm:
Code:
package de.devMik.textadventure;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class InventarBildschirm extends Activity implements OnClickListener {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.inventar); 
//        Inventar inv = new Inventar();
    
        TextView TLeben= (TextView) findViewById(R.id.tVLeben);
        TextView TAngriff =(TextView) findViewById(R.id.tVAngriff);
        TextView TDeff = (TextView) findViewById(R.id.tVDeff);
        TextView TLebenstränke = (TextView) findViewById(R.id.tVLebenstraenke);
        Bundle zielkorb = getIntent().getExtras();
        int Leben = zielkorb.getInt("datenpaket");
        int Angriff = zielkorb.getInt("datenpaket2");
        int Deff= zielkorb.getInt("datenpaket3");
        int Lebenstranke = zielkorb.getInt("datenpaket4");
        TLeben.setText(String.valueOf(Leben));
        TAngriff.setText(String.valueOf(Angriff));
        TDeff.setText(String.valueOf(Deff));
        TLebenstränke.setText(String.valueOf(Lebenstranke));
        
        Button Angriffändern =(Button) findViewById(R.id.bTAngriffa);
        Angriffändern.setOnClickListener((OnClickListener) this);
        
        
}

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()) {
        case R.id.bTAngriffa:
            Inventar inv = new Inventar();
            inv.Angriffändern(120);
            TextView TAngriff =(TextView) findViewById(R.id.tVAngriff);
            TAngriff.setText(String.valueOf(inv.InventarAngriff()));
        }
    }
    
}

Und das vom Button:
Code:
   case R.id.btInv:
           Inventar inv= new Inventar();
   inv.Inventarcreate();    
            
            int Leben6= inv.InventarLeben();
           int Angriff6 = inv.InventarAngriff();
           int Deff6 = inv.InventarDeff();
           int Lebenstranke6= inv.InventarLebenstränke();
          
           Intent intent3 = new Intent();
           Bundle inventar = new Bundle();
            inventar.putInt("datenpaket", 42);
            inventar.putInt("datenpaket2", Angriff6);
            inventar.putInt("datenpaket3", Deff6);
            inventar.putInt("datenpaket4", Lebenstranke6);
            intent3.putExtras(inventar);
            
            intent3.setClass(this, InventarBildschirm.class);
        startActivity(intent3);
//            Anzeige.setText(String.valueOf(Leben6)+String.valueOf(Angriff6)+String.valueOf(Deff6)+String.valueOf(Lebenstranke6));
//            Anzeige.setText(String.valueOf(i));
            break;
            
    }
}


Interessanter Weise geben die return Funktionen von Inventar auch immer 0 zurück....

Mehr dazu hatte ich auch hier geschrieben:
https://www.android-hilfe.de/forum/...ng.9/app-stuerzt-ab-out-of-memory.447772.html

Vielleicht kannst du mir helfen?

Ich verzweifel gerade...
 
Kannst ja mal mit Log ausgeben, was in der for Schleife in den reader Methoden von readLine zurückkommt. Sonst erzeugt dir doch mal selber die savegame.txt und versuchs damit, bzw schreib nur einen Wert rein und probier, ob es mit der while-schleife, die du auskommentiert hast funktioniert.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Zurück
Oben Unten