1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

EditView Inhalt durch click an Activity übergeben

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kopfgut, 29.09.2010.

  1. Kopfgut, 29.09.2010 #1
    Kopfgut

    Kopfgut Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    28.09.2010
    Hallo zusammen,

    fange gerade an mich mit Android zu beschäftigen und ich hänge jetzt schon sehr lange an einem Problem mit einem Intent.
    Ich habe meinen Code schon so weit wie es geht vereinfacht aber es funktioniert einfach nicht.
    Ich hab 2 Activitys und 2 Views. Ich möchte einfach den Text aus der ersten View per Intent an die 2-te View übergeben. Wenn ich es auf dem Emulator ausführe kommt immer die Fehlermeldung The application test ... has stopped unexpectedly

    Im debug erscheint:
    java.lang.RuntimeException: Unable to start activity ComponentInfo{de.kopfgut.apps.test/de.kopfgut.apps.test.ActivityZwei}: java.lang.NullPointerException

    Kann mir jemand vielleicht weiterhelfen?

    ActivityEins:
    Code:
    package de.kopfgut.apps.test;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class ActivityEins extends Activity implements OnClickListener  {
        final static String VARIABLE = "eingegeben";  
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            // Implementieren des OnClickListener
            Button button = (Button)findViewById(R.id.btn_uebergeben);
            button.setOnClickListener(this);
        }
        public void onClick(View v) {
            final EditText dieeingabe = (EditText)findViewById(R.id.edt_eingabe);
            final String eingegeben = dieeingabe.getText().toString();
            
            final Intent intent = new Intent(this, ActivityZwei.class);
            intent.putExtra(VARIABLE, eingegeben);
            startActivity(intent);
        }  
    }
    ActivityZwei:
    Code:
    package de.kopfgut.apps.test;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class ActivityZwei extends Activity {
        public String eingegeben;
        
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.anzeigen);        
            
            final Bundle extras = getIntent().getExtras();
            eingegeben = extras.getString(ActivityEins.VARIABLE);
            
            textAnzeigen();
        }
        
        public void textAnzeigen()
        {
            final TextView txtBetrag = (TextView)findViewById(R.id.txt_eingabe_ausgabe);
            txtBetrag.setText(String.valueOf(eingegeben));
        }
    }
    Manifest:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="de.kopfgut.apps.test"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".ActivityEins"
                      android:label="@string/app_name"
                      android:debuggable="true">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>
            <activity android:name=".ActivityZwei"/>
        </application>
        <uses-sdk android:minSdkVersion="6"/>
    </manifest> 
     
  2. DieGoldeneMitte, 29.09.2010 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Willkommen im Club.

    Es wäre hilfreich, wenn Du mal die Zeile postest, in der die NullpointerException auftritt.
    Ist in einer Zeile hinter findViewById?
    Dann ist in der layout Datei main.xml die entsprechende id nicht oder anders definiert.
     
  3. Kopfgut, 29.09.2010 #3
    Kopfgut

    Kopfgut Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    28.09.2010
    Hier sind die Meldungen die der Debug ausgibt:
    Für mich ist das Thema noch ziemlich neu und irgendwie werd ich daraus nicht wirklich schlau!

    Code:
    threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    ERROR/AndroidRuntime(207): Uncaught handler: thread main exiting due to uncaught exception
    ERROR/AndroidRuntime(207): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.kopfgut.apps.test/de.kopfgut.apps.test.ActivityZwei}: java.lang.NullPointerException
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2481)
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2497)
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
    ERROR/AndroidRuntime(207):     at android.os.Handler.dispatchMessage(Handler.java:99)
    ERROR/AndroidRuntime(207):     at android.os.Looper.loop(Looper.java:123)
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread.main(ActivityThread.java:4338)
    ERROR/AndroidRuntime(207):     at java.lang.reflect.Method.invokeNative(Native Method)
    ERROR/AndroidRuntime(207):     at java.lang.reflect.Method.invoke(Method.java:521)
    ERROR/AndroidRuntime(207):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    ERROR/AndroidRuntime(207):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    ERROR/AndroidRuntime(207):     at dalvik.system.NativeStart.main(Native Method)
    ERROR/AndroidRuntime(207): Caused by: java.lang.NullPointerException
    ERROR/AndroidRuntime(207):     at de.kopfgut.apps.test.ActivityZwei.textAnzeigen(ActivityZwei.java:26)
    ERROR/AndroidRuntime(207):     at de.kopfgut.apps.test.ActivityZwei.onCreate(ActivityZwei.java:20)
    ERROR/AndroidRuntime(207):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    ERROR/AndroidRuntime(207):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2444)
    ERROR/AndroidRuntime(207):     ... 11 more
     
  4. MetBo, 29.09.2010 #4
    MetBo

    MetBo Fortgeschrittenes Mitglied

    Beiträge:
    264
    Erhaltene Danke:
    4
    Registriert seit:
    14.05.2010
    Vielleicht das final vor den Instanziierungen wegnehmen?
     
  5. Fr4gg0r, 29.09.2010 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Das Edittext, welches du mit findViewById holen willst, kommt nicht in der View vor, die du mit setContentView gesetzt hast. :scared:
     
  6. DieGoldeneMitte, 29.09.2010 #6
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Code:
    ERROR/AndroidRuntime(207): Caused by: java.lang.NullPointerException
    ERROR/AndroidRuntime(207):     at de.kopfgut.apps.test.ActivityZwei.textAnzeigen(ActivityZwei.java:26)
    
    Zeile 26 in ActivityZwei:
    Code:
            txtBetrag.setText(String.valueOf(eingegeben));
    
    Klarer Fall, txtBeitrag ist null,
    weil es keinen View mit der ID txt_eingabe_ausgabe (Zeile 25)
    im Layout anzeigen.xml (Zeile 15) gibt.

    Wenn Du in einer Activity die Daten einer anderen nutzen willst,
    musst Du sie entweder beim Intent als "Extra" mitgeben,
    oder (quasi als globale Variable) in dem Application Objekt speichern.
     
    Zuletzt bearbeitet: 29.09.2010
  7. Kopfgut, 30.09.2010 #7
    Kopfgut

    Kopfgut Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    28.09.2010
    Oh ja!!! Das hab ich die ganze Zeit übersehen :sleep:

    Ich hatte:
    Code:
    <TextView android:[B]text[/B]="@+id/txt_eingabe_ausgabe"
    Es muss natürlich so aussehen:
    Code:
    <TextView android:[B]id[/B]="@+id/txt_eingabe_ausgabe"
    Vielen dank nochmals an alle für die spitzenmäßigen Hinweise.
     

Diese Seite empfehlen