Custom Dialog Button event

Lodorvonhal

Mitglied
Hallo ich habe folgendes Problem.

Ich habe eine App gebastelt und rufe über die Menü Taste ein Menü auf und dort über ein Element einen Custom Dialog. Die Anleitung dazu habe ich Dialogs | Android Developers hier her.

der Dialog öffnet sich auch. Alles ohne Probleme.

Ich kann nur leider auf die Buttons keine Events aufrufen. Ich weis momentan nicht weiter.

Hier der Code:
Java:
dialoge = new Dialog(MainActivity.this);
	        	
dialoge.setContentView(R.layout.v_options);

dialoge.setTitle("Custom Dialog");
dialoge.show();
	        	
LayoutInflater inflater = (LayoutInflater) MainActivity.this
	    				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.v_options,
	    		          (ViewGroup) MainActivity.this.findViewById(R.layout.v_options));
Button button = (Button) layout.findViewById(R.id.v_options_button_save);
Log.i(TAG, "nanam    ");
button.setOnClickListener(new View.OnClickListener() {
	    			
@Override
public void onClick(View v) {
dialoge.dismiss();
Log.i(TAG, "blaaaa");
}
});

Danke fürs lesen! :)
 

schlingel

Gesperrter Benutzer
Kein Wunder, da hast du ein paar Sachen durcheinander gebracht.

Java:
dialoge = new Dialog(MainActivity.this);
                
dialoge.setContentView(R.layout.v_options);
 
dialoge.setTitle("Custom Dialog");
So weit so schlecht. Du erstellst dir einen Dialog mit dem Konstruktor anstatt den von der Doku vorgeschlagenen Pfad zu wählen:

Doku hat gesagt.:
However, because an AlertDialog is created easiest with the AlertDialog.Builder class, you do not have access to the setContentView(int) method used above.

Aber egal, das ist ja nicht das einzige Problem.

Java:
dialoge.show();

Bumm, der Dialog ist da ohne dass die Handler gesetzt sind.

Java:
View layout = inflater.inflate(R.layout.v_options,
                          (ViewGroup) MainActivity.this.findViewById(R.layout.v_options));

Nun erzeugst du eine neue View und setzt den Parent auf null. Denn findViewById erwartet eine ID die du im Layout mit android:id="@+id/myViewId" setzt. Da du aber bei der inflate-Methode gefahrlos einen Nullwert eintragen kannst, merkst du das nicht weiter.

Java:
button.setOnClickListener(new View.OnClickListener() //...
An dieser Stelle hängst du deinen Event-Listener an einem Button an der wiederum in einer View hängt die wiederum im Nirvana vor sich hin geistert.

Viel besser wäre es, wenn du den Code ca. so umbaust. (Achtung: ungetestet)
Java:
AlertDialog.Builder builder;
AlertDialog alertDialog;

Context context = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)LayoutInflater.from(context); 
View layout = inflater.inflate(R.layout.v_options, null);
Button button = (Button) layout.findViewById(R.id.v_options_button_save);
Log.i(TAG, "nanam    ");
button.setOnClickListener( /*Dein event listener*/ );

builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();

1. Doku
 

Lodorvonhal

Mitglied
Hi schlingel.

Danke für die Antwort. Mit deinem Code geht es leider so nicht. macht aber nix.

Ich habe verstanden wo der Fehler liegt.

So geht es nun. Ich weis nicht ob ich nun noch Fehler mache. Aber es geht ^^

Java:
dialoge = new Dialog(this);
	        	
dialoge.setContentView(R.layout.v_options);
dialoge.setTitle(R.string.v_options);
	        	
Button button = (Button) dialoge.findViewById(R.id.v_options_button_abort);
Log.i(TAG, "nanam    ");
button.setOnClickListener(new View.OnClickListener() 
{
@Override
public void onClick(View v) {
dialoge.dismiss();
Log.i(TAG, "blaaaa");
}
});
	        	
dialoge.show();

Danke dir
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Android ListView (Custom) soll auf Hardwaretasten nicht reagieren. Android & Cross-Platform Mobile Apps 10
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
B Android Memory Leak: Custom Adapter, Timer Android & Cross-Platform Mobile Apps 9
B Android ListView set custom check Image and delete Android & Cross-Platform Mobile Apps 0
J Android Custom ViewGroup onMeasure() - heightMeasureSpec ist 0. Warum? Android & Cross-Platform Mobile Apps 2
Miguel Gonzalez Android Anfaengerproblem: Multiple Custom Views in Custom Views Android & Cross-Platform Mobile Apps 2
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
R Android Dialog verstecken, statt zu schliessen Android & Cross-Platform Mobile Apps 7
J Input Dialog - ist das so richtig ? Android & Cross-Platform Mobile Apps 1
L Leerer Dialog Android & Cross-Platform Mobile Apps 0
L Dialog anzeigen wenn auf Button gedrückt wird. Android & Cross-Platform Mobile Apps 4
B Android Alert Dialog mit sound oder Android & Cross-Platform Mobile Apps 1
J Dialog in Fragment Android & Cross-Platform Mobile Apps 6
B Senden via Dialog? Android & Cross-Platform Mobile Apps 6
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
N Android Retain Dialog verschwindet beim drehen Android & Cross-Platform Mobile Apps 4
T Android - Toast Dialog oder was anders? Android & Cross-Platform Mobile Apps 3
A Android Probleme mit Dialog Android & Cross-Platform Mobile Apps 4
A Android Dialog wird nicht sofort angezeigt Android & Cross-Platform Mobile Apps 12
I modaler Dialog Android & Cross-Platform Mobile Apps 2
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
W App deinstallieren per Button & Andere App Öffnen per Button Android & Cross-Platform Mobile Apps 24
W Apk automatisch installieren per Button Android & Cross-Platform Mobile Apps 55
W aus Fragmente in andere Klasse wechseln mit Button Android & Cross-Platform Mobile Apps 3
T App updaten via Button Android & Cross-Platform Mobile Apps 10
AGW Android Teilen Button ändern Android & Cross-Platform Mobile Apps 14
A Button in SurfaceView integrieren Android & Cross-Platform Mobile Apps 10
J Android App - Browser öffnen und Text eingeben/Button click auslösen Android & Cross-Platform Mobile Apps 10
L Button zum Quadrad zwingen Android & Cross-Platform Mobile Apps 2
S Android Absoluter Neuling: EditText zur Laufzeit verändern bzw. über Button Android & Cross-Platform Mobile Apps 2
S Android ListFragment & ArrayAdapter - Button-Werte werden vergessen Android & Cross-Platform Mobile Apps 0
B Android Abfragen wie lang ein Button gedrückt wurde Android & Cross-Platform Mobile Apps 2
J Android button mithilfe einer Methode automatisch erstellen Android & Cross-Platform Mobile Apps 6
A AlertDialog Enable Button Android & Cross-Platform Mobile Apps 1
J Button array ID Problem Android & Cross-Platform Mobile Apps 2
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
B Android ringProgressDialog nach Erfolg Button einfärben Android & Cross-Platform Mobile Apps 2
A Android Menü Button oben links Android & Cross-Platform Mobile Apps 1
B Mit Button GeräteEinstellung des Handys öffnen Android & Cross-Platform Mobile Apps 3
M Android Android "Up-Button" extra definieren? Android & Cross-Platform Mobile Apps 1
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
T Button aktivieren per Qullcode... Android & Cross-Platform Mobile Apps 3
T Button geht net... Android & Cross-Platform Mobile Apps 2
D Man sieht nicht ob Button gedrückt wurde! Android & Cross-Platform Mobile Apps 10
K Grafik Tablerow, Button erstreckt sich in der gesamten Breite trotz Beschrenkung durch (max)width Android & Cross-Platform Mobile Apps 2
G Button ein Wert zuweisen Android & Cross-Platform Mobile Apps 5
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
B Android Button erstellen nach Vorlage Android & Cross-Platform Mobile Apps 4
L Android Button mit Pfeil nach rechts Android & Cross-Platform Mobile Apps 1
M Einzel Verarbeitung welcher Button angeklickt wurde? Android & Cross-Platform Mobile Apps 6
G Back-Button Methode überschreiben Android & Cross-Platform Mobile Apps 2
P Android Option Button Android & Cross-Platform Mobile Apps 4
G Check Button ist unchecked trotz setChecked(true) Android & Cross-Platform Mobile Apps 6
G Android Button mit Bild Android & Cross-Platform Mobile Apps 4
W Android App Programmierung - Button ganz transparent machen Android & Cross-Platform Mobile Apps 3
J Button rechtsbündig Android & Cross-Platform Mobile Apps 5
A Android Button Array? Android & Cross-Platform Mobile Apps 6
P Android Button mit bild versehen Android & Cross-Platform Mobile Apps 4
J "Button" auf List erstellen Android & Cross-Platform Mobile Apps 4
U Fire button und Command.BACK, 1 kommen sich in die quere Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben