2017-12-03 25 views
1

Ich versuche, einen Warndialog mit einem benutzerdefinierten Ansichtslayout zu erstellen, aber der Bildschirm wird nur gedimmt, ohne dass ein Dialogfeld angezeigt wird.AlertDialog mit benutzerdefiniertem Layout wird nicht angezeigt

AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this); 
builder.setView(findViewById(R.id.system_profile_dialog)); 
AlertDialog setSysProfileDialog = builder.create(); 
setSysProfileDialog.show(); 

XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/system_profile_dialog" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:hint="@string/system_profile_hint" 
     android:inputType="number" /> 
</LinearLayout> 

Antwort

1

Das Problem ist, diese Zeile:

builder.setView(findViewById(R.id.system_profile_dialog)); 

Ändern Sie es an:

builder.setView(LayoutInflater.from(this).inflate(R.layout.layout_name, null, false)); 

Sie sollen dort eine aufgeblasene Ansicht passieren, kein id einer Ansicht in der aktuellen Aktivität.

0

versuchen, dass

Dialog dialog = new Dialog(this); 
     dialog.setContentView(R.layout.YourFile); 
     EditText editText = (EditText)dialog.findViewById(R.id.YourEditText); 
     dialog.show(); 
0

Versuchen Sie, den Generator mit dem eigentlichen Context-Objekt instanziiert wird, ruft getApplicationContext()

0

Ersetzen Sie einfach builder.setView (findViewById (R.id.system_profile_dialog)); mit builder.setView (R.id.system_profile_dialog). Wenn Sie die offizielle Dokumentation überprüfen, werden Sie feststellen, dass setView (View) nur die anzuzeigende Ansicht einstellt, aber setView (int layoutResourceId) ebenfalls die Ansicht aufbläht.

+0

Dieser Aufruf ist gut für API 21 und höher. –

+1

Ja, Sie haben Recht. Wenn Sie <21 zielen, müssen Sie tun, was Vucko vorgeschlagen hat. – colens

Verwandte Themen