2011-01-06 5 views
0

Ich baue einen Alarmdialog dynamisch mit einem Bearbeitungsfeld mit zwei Schaltflächen. Das Dialogfeld wird Einwickeln nur die Breite, die sehr klein ist, mag ichWie bekomme ich meinen AlertDialog, um die übergeordnete Breite zu füllen

die Mutter Breite zu füllen, es strecken
public void showMessageDialog(String name){ 

    final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    this.etMessage = new EditText(this); 
    etMessage.setText(""); 
    alert.setMessage("Message " + name); 
    alert.setView(etMessage); 
    alert.setPositiveButton("Message", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      updateLocation(); 

     } 
    }); 
    alert.setNeutralButton("Map", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      showMap(); 
     } 
    }); 

    alert.show(); 
} 

Antwort

0

Ich weiß nicht, wie es aus dem Code zu tun, aber wenn Sie eine Ansicht von XML aufblasen Sie können das Attribut layout_width="fill_parent" der Ansicht der obersten Ebene hinzufügen, und es sollte den Bildschirm füllen.

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 

Anschließend können Sie die Ansicht aufblasen wie so:

View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_view, null); 

und fügen Sie es dem AlertDialog.Builder:

builder.setView(dialogLayout); 
+1

Ja, aber das Dialogfeld existiert nicht auf dem xml Blatt. Ich glaube nicht mal, dass ein Dialogelement existiert. – Brian

+0

Nein, Sie können jedoch jede Ansicht instanziieren und sie zum AlertDialog.Builder hinzufügen. Es wurde mehr hinzugefügt, um Ihnen zu helfen. –

Verwandte Themen