Probleme mit AlertDialog und Toast [Anfängerhilfe]

  • Antworten:3
BirnenFan-ApfelHater
  • Forum-Beiträge: 12

29.05.2014, 14:14:53 via Website

Hallo,

ich bin noch Java bzw. Android-Anfänger und versuche gerade mithilfe von verschiedenen Tutorials eine kleine App zu schreiben.
Ich habe allerdings ein Problem mit den AlertDialogs und Toasts.
Jedesmal wenn ich einen AlertDialog oder einen Toast aus einer Klasse aufrufe, die nicht die Activity ist, wo der Dialog angezeigt werden soll, stürzt meine App ab.

Hier der Code aus der Klasse, wo sich die Methode mit dem AlertDialog befindet:

import android.app.Activity;
import android.app.AlertDialog;
import android.widget.Toast;

public class AlertDialogKlasse extends Activity {
public void ad() {

    AlertDialog ad = new AlertDialog.Builder(this).create();
    ad.setMessage("Test");
    ad.show();

}

}

Später ruf ich die Methode dann nur noch in der Activity, wo der AlertDialog angezeigt werden soll, auf:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AlertDialogKlasse adk = new AlertDialogKlasse();
        adk.ad();
}

Kann mir vielleicht jemand helfen?

Schon im voraus danke

mfg

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.05.2014, 14:23:12 via Website

Wenn deine AlertDialogKlasse von Activity erbt, dann muss es auch eine Activity sein, sprich eine onCreate Methode haben etc.
Wenn du aber nur eine Methode haben willst, die den alertdialog erstellt, dann übergibst du einen Context als Parameter.

Etwa so:

public class AlertDialogKlasse extends Activity { 

public void ad(Context con) {
 AlertDialog ad = new AlertDialog.Builder(con).create();
ad.setMessage("Test" );
ad.show();

}

}

aufrufen kannst du das dann so:

AlertDialogKlasse adk = new AlertDialogKlasse();
    adk.ad(this);

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

Antworten
BirnenFan-ApfelHater
  • Forum-Beiträge: 12

29.05.2014, 14:39:13 via App

Erstmal vielen dank für die sehr schnelle Antwort. Klappt alles hervorragend. Funktioniert das mit Toasts genauso?

— geändert am 29.05.2014, 14:46:21

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

29.05.2014, 19:56:48 via Website

Ganz genau, auch einfach das gleiche Prinzip mit dem Parameter anwenden.

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

Antworten