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

Custom Dialog Button event

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Lodorvonhal, 13.02.2012.

  1. Lodorvonhal, 13.02.2012 #1
    Lodorvonhal

    Lodorvonhal Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    13.02.2012
    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:
    Code:
    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!
     
  2. DieGoldeneMitte, 13.02.2012 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Du setzt erst mit setContentView ein Layout direkt aus den Resourcen.

    Dann kreierst du ein weiteres Layout aus den Resourcen. Dieses Mal zufuß.

    Im diesem zweiten (überflüssigen) Layout setzt du die Callbacks (das du obendrein nicht mit dem Dialog verbindest). Diese werden dann natürlich nicht aufgerufen.

    Du musst stattdessen die Callbacks im Button des ersten Layouts registrieren.

    Alle Klarheiten beseitigt?
     
    h4kkin und Lodorvonhal haben sich bedankt.
  3. Lodorvonhal, 13.02.2012 #3
    Lodorvonhal

    Lodorvonhal Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    13.02.2012
    WFT

    vielen Dank so gehts nun. Danke nochmal.

    Code:
    dialoge = new Dialog(MainActivity.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();
    
     
  4. DieGoldeneMitte, 13.02.2012 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Fürs Danke gibts nen Button :D
     

Diese Seite empfehlen