2017-09-19 2 views
0

Ich habe einen Alarmdialog mit TextView und einer Liste mit Optionen erstellt. Der Benutzer kann ein Element aus der Liste auswählen oder ein neues Element mit der EditText hinzufügen.AlertDialog ausblenden, wenn Sie auf Listeneintrag klicken

Das Problem ist, dass die alertDialog nur versteckt ist, wenn ich die Schaltfläche zum Hinzufügen von neuen und nicht, wenn ich auf ein Element in der Liste klicken.

Wie kann ich den AlertDialog bei der Auswahl eines ListView-Elements ausblenden?

Danke.

EDIT

Schlusscode:

final AlertDialog builder = new AlertDialog.Builder(this).create(); 
    final LayoutInflater inflater = getLayoutInflater(); 
    final View dialogGroup = inflater.inflate(R.layout.select_group_layout, null); 
    final EditText newGroup = dialogGroup.findViewById(R.id.new_group); 
    final ListView listView = dialogGroup.findViewById(R.id.groups_list); 


    listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list)); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass()); 
      builder.dismiss(); 
     } 
    }); 

    builder.setView(dialogGroup); 
    builder.setTitle(R.string.departments_txt); 
    builder.setButton(Dialog.BUTTON_POSITIVE, "Añadir", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int i) { 
      contactDepartment = newGroup.getText().toString(); 
      HelperTools.showInfo("Selected group: " + contactDepartment, getClass()); 
     } 
    }); 

    if (list.size() != 0) { 
     builder.show(); 
    } 
+1

add "entlassen()" in den onClick Listener für ein ausgewähltes Element. Das sollte den Dialog verwerfen. – Devsil

+0

Das funktioniert nicht. Ich probierte das und builder.hide(), aber nichts funktioniert –

Antwort

2

hinzufügen builder.dismiss(); nach dem Klicken auf das Element in der Listenansicht.

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
     HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass()); 
     builder.dismiss(); 
    } 
}); 

EDIT:

erstellen AlterDialog ähnliche

final AlertDialog builder = new AlertDialog.Builder(this).create(); 

Um zu zeigen, Dialog

builder.show(); 

Zum Dialog abbrechen

builder.dismiss(); 
+0

Kann nicht finden Symbol Methode entlassen() –

+0

oder dialog.cancel() .. es sollte funktionieren – Anonymous

+0

Verwenden Sie nicht alertDialog.builder..Inteadialog erstellen und verwenden Sie es. – Anonymous

0

können Sie Dialog.dismiss()

dismiss() Entlassen diesen Dialog verwenden, ist es vom Bildschirm zu entfernen.

AlertDialog dialog=builder.create(); 
          //then put dialog.dismiss() to 
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
     HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass()); 
     if (dialog.isShowing()){ 
      dialog.dismiss(); 
     } 

    } 
}); 
+0

Kann nicht finden, Symbol Methode entlassen() –

+0

@JacinMontava überprüfen aktualisiert ans –

+0

Update 'ans'? Android Studio? –

0

Anstelle dieser Code:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
          int position, long id) { 
     HelperTools.showInfo("Selected group: " + ((TextView) view).getText(), getClass()); 


    } 
}); 

Verwendung dieser Code:

builder.setSingleChoiceItems(list, position, new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int position) 
      { 
       // do something 
       dialog.dismiss(); 
      } 
     }); 
+0

Inkompatible Typen: Builder kann nicht in AlertDialog –

+0

aktualisiert werden überprüfen aktualisierte Antwort –

Verwandte Themen