AlertDialog - OnClick()

  • 2 Antworten
  • Letztes Antwortdatum
C

Chris-Pi

Neues Mitglied
0
Servus,

ich habe ein kleines Problem mit dem AlertDialog.

Ich möchte in einer Activity verschiedene solche Dialoge erstellen, abhängig von der Aktion der Activity.

Ich habe daher 2 Methoden geschrieben, die mir einen AlertDialog erstellen, jeweils mit einem oder mit zwei Buttons.

Ansich funktioniert die Darstellung der Buttons prima - das heißt wenn ich die Methoden aufrufe, werden die Buttons angezeigt und auch die Anzahl und Beschriftung der Buttons ist in Ordnung.

Das einzige was nicht funktioniert, sind die Aktionen im OnClick() Interface.

Diese werden einfach nicht ausgeführt und ich weiss nicht warum.

Ein bischen Hilfe wäre nett! :thumbup:


Hier mal der Code;

Code:
public class ActivityTest extends Activity implements android.view.View.OnClickListener, android.content.DialogInterface.OnClickListener

private AlertDialog errorDialog;

private AlertDialog registerErrorDialog;

private AlertDialog userAlreadyExistErrorDialog;
	
private AlertDialog noNetworkErrorDialog;

// Dialog mit zwei Button

public void createAlertDialog(String title, String message, String buttonPositive, String buttonNegative, AlertDialog dialog)
	{
		AlertDialog.Builder builder = new AlertDialog.Builder(this);

		builder.setTitle(title);
		builder.setMessage(message);

		builder.setPositiveButton(buttonPositive, this);
		
		builder.setNegativeButton(buttonNegative, this);

		dialog = builder.create();
								
		dialog.show();
	}

// Dialog mit einem Button
	
public void createAlertDialog(String title, String message, String buttonPositive, AlertDialog dialog)
	{
		AlertDialog.Builder builder = new AlertDialog.Builder(this);

		builder.setTitle(title);
		builder.setMessage(message);

		builder.setPositiveButton(buttonPositive, this);
						
		dialog = builder.create();
								
		dialog.show();
	}

// onClick()

public void onClick(DialogInterface dialog, int which)
	{
		if (dialog == errorDialog)
		{
			if(which == AlertDialog.BUTTON_POSITIVE)
			{
				refresh();
				errorDialog.dismiss();
			}
			else if(which == AlertDialog.BUTTON_NEGATIVE)
			{
				errorDialog.dismiss();
			}
		}
}

// erstellen eines Dialoges

public void setConnectionError()
	{
		createAlertDialog("Error", "Blablub", "Ok", "Cancel", errorDialog);
	}
 
Hi, hast du schon versucht dieses Problem mit anonymen Onclicklistener zu lösen?

Code:
builder.setPositiveButton(buttonPositive, [COLOR=Red][B]new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                // Hier alles was gemacht werden muss, bei einem klick
            }
        });[/B][/COLOR]);

MfG
 
Jap, das hatte ich und das funktionierte auch soweit - zumindest in einer anderen Activity, aber ich dachte mir, ich wollte es mal auf diesem Wege mit einer Methode probieren.

Habe es jetzt so gelöst, das ich als Rückgabe Typ einfach den Builder genommen habe und in meiner Methode, die den Dialog öffnen soll, den AlertDialog dann mit diesem Builder setze. Dann funktioniert auch der OnClick() prima.

Danke für deine Hilfe!
 
Zurück
Oben Unten