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

AlertDialog.Builder in Class auslagern

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Duckemai, 04.08.2011.

  1. Duckemai, 04.08.2011 #1
    Duckemai

    Duckemai Threadstarter Erfahrener Benutzer

    Beiträge:
    227
    Erhaltene Danke:
    6
    Registriert seit:
    05.04.2010
    Phone:
    Nexus
    Hallo zusammen,

    ich räume derzeit etwas meinen Sourcecode auf und wollte meine AlertDialogs in eine extra Klasse packen. Doch dann bekommt er Probleme mit dem Context this:
    AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);//Error

    Daher habe ich den Context this aus der aufrufenden Activity mit übergeben, aber auch hier streikt er.

    Weiß jemand, wie so etwas zu bewerkstelligen ist?

    Danke
    Duckemai
     
  2. Kranki, 04.08.2011 #2
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    this ist immer das aktuelle Objekt, du musst da den übergebenen Kontext reinschieben.
     
  3. Duckemai, 04.08.2011 #3
    Duckemai

    Duckemai Threadstarter Erfahrener Benutzer

    Beiträge:
    227
    Erhaltene Danke:
    6
    Registriert seit:
    05.04.2010
    Phone:
    Nexus
    Hallo!

    Das meinte ich mit :
    Will meinen, in der funktionsaufrufenden Activity steht das hier:
    mymessages.message_OneOkButton("bla", "News", this);

    der in der Class MyMessages so aufgefangen wird:
    public void message_OneOkButton(String _setMessage, String _setTitle, Context context){
    AlertDialog.Builder alt_bld = new AlertDialog.Builder(context);
    ...

    Funktioniert aber nicht. Oder meintest Du etwas anderes?
     
  4. Kranki, 05.08.2011 #4
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Nein, dass sieht schon etwas anders aus. Nächster Schritt: Logcat. "Funktioniert nicht" gibts nicht. Es gibt immer eine detaillierte Fehlermeldung.
     
  5. Duckemai, 05.08.2011 #5
    Duckemai

    Duckemai Threadstarter Erfahrener Benutzer

    Beiträge:
    227
    Erhaltene Danke:
    6
    Registriert seit:
    05.04.2010
    Phone:
    Nexus
    ja, Fehlermeldungen habe ich reichlich. Der Aufruf findet in der onCreate statt. Der Alert.Dialog funktioniert dort auch, wenn ich ihn komplett dort hineinschreibe. Aber eben nicht als Funktionsaufruf. Aber auch ein Fktaufruf in der onStart() funktioniert nicht.

    LogCat
    Code:
      08-05 08:21:00.813: ERROR/AndroidRuntime(617): Uncaught handler: thread main exiting due to uncaught exception
      08-05 08:21:01.083: ERROR/AndroidRuntime(617): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MyTestApp/com.MyTestApp.MyTestApp}: java.lang.NullPointerException
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread.access$2200(ActivityThread.java:126)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.os.Handler.dispatchMessage(Handler.java:99)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.os.Looper.loop(Looper.java:123)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread.main(ActivityThread.java:4595)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at java.lang.reflect.Method.invokeNative(Native Method)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at java.lang.reflect.Method.invoke(Method.java:521)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at dalvik.system.NativeStart.main(Native Method)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617): Caused by: java.lang.NullPointerException
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at com.MyTestApp.MyTestApp.onCreate(MyTestApp.java:193)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
      08-05 08:21:01.083: ERROR/AndroidRuntime(617):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
      [FONT=Arial]08-05 08:21:01.083: ERROR/AndroidRuntime(617):     ... 11 more[/FONT]
     
    Zuletzt bearbeitet: 05.08.2011

Diese Seite empfehlen