neue Activity auf anderes Layout zugreifen Nullpointer

T

thacoga

Neues Mitglied
0
Hallo

Ich habe das Problem wenn ich aus einer Activity die auf ein Layout referenziert ist einen Wert im TextView in einem anderen Layout verändern möchte eine Nullpointer Exception bekomme. Hoffe dies ist verständlich
Hier mein Code:

MainActivity.java

PHP:
  public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button starten = (Button)findViewById(R.id.starte);
        final TextView ergebnis = (TextView) findViewById(R.id.ergebnis);
        Log.i("WaaSSSSaaP", "ergebnis:" + ergebnis); // null als ergebnis
        starten.setOnClickListener(new OnClickListener() {
               public void onClick(View v) {
                        ergebnis.setText("100"); // Nullpointer
                        Intent in = new Intent(MainActivity.this,SecondActivity.class);
                        startActivity(in);      
               }
        }
    }
    }
SecondActivity.java

PHP:
public class SecondActivity extends Activity {
    String ergebnis_string;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_second);
        final TextView ergebnis = (TextView) findViewById(R.id.ergebnis);
        ergebnis_string = ergebnis.getText().toString();
        .
        .
        .
    }
    }
activity_second.xml:

HTML:
<Button
        android:id="@+id/starte"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="LOS GEHTS!" />
activity_main:

HTML:
    <TextView
        android:id="@+id/ergebnis"
        android:layout_height="wrap_content"
        android:layout_width="50dp"
        android:text="250"
        />
Also auf Button click soll mir eine neue Activity geöffnet werden in der keine "250" mehr steht sondern eine "100"
Hoffe mir kann da jemand helfen.

Hab mir das hier angeguckt: LINK nur für mein Vorhaben funktioniert das irgendwie nicht
Danke
 
Zuletzt bearbeitet:
findViewById sucht nur im View, den du mit setContentView geladen hast.
Dort gibt es den view nicht, deshalb bekommst du die null.

Du musst den Wert (zB per Intent.putExtra) an die neue Activity übergeben,
dort kannst du dann (im onCreate) nach dem setContentView den View mit findViewById holen
und mit einem Wert versehen.
 
Zuletzt bearbeitet:
Du solltest unbedingt Grundlagen lernen.
Du setzt in beiden Activitys ein anderes Layout. Wie soll jetzt das eine Programm, auf das andere zugreifen, ohne zu wissen das es das überhaupt gibt?!

Aber wie gesagt, Grundlagen!

Gruß
 
  • Danke
Reaktionen: kleinerkathe
StefMa schrieb:
Du solltest unbedingt Grundlagen lernen.
Du setzt in beiden Activitys ein anderes Layout. Wie soll jetzt das eine Programm, auf das andere zugreifen, ohne zu wissen das es das überhaupt gibt?!

Aber wie gesagt, Grundlagen!

Gruß

Das ist mein Vorhaben ich will auf ein anderes Layout zugreifen. Was hat das mit grundlagen zutun?
 
Die Grundlage dabei ist zu verstehen, dass es dieses andere Layout gar nicht gibt.
Bzw. du kannst nicht sicher sein das es das gibt.

Sobald du in der 2. Activity bist kann die erste gelöscht werden (beispielsweise bei zu wenig Ram).
Und dann gibt es das TextView Object einfach nicht mehr.

Activities sind logisch voneinander getrennt zumindest wenn man es richtig umsetzt.
Sprich, die wissen nichts von einander und sollten theoretisch auch vollkommen eigenständig existieren können.

Und das sind nun mal die Grundlagen der Activities unter Android.


Ich versteh aber nicht 100% was du vorhast.
Eigentlich müsste starten null sein und den nullpointer werfen.
 
thacoga schrieb:
Was hat das mit grundlagen zutun?

Activities, Trennung, LifeCycle, Intents, damit hat das zu tun und das SIND eben Grundlagen
 

Ähnliche Themen

L
Antworten
4
Aufrufe
1.347
lonnie9020
L
B
Antworten
4
Aufrufe
509
bb321
B
M
  • MikelKatzengreis
Antworten
5
Aufrufe
158
swa00
swa00
Zurück
Oben Unten