Em um aplicativo Android, desejo exibir uma exibição de lista personalizada em um AlertDialog.
Como posso fazer isso?
android
android-alertdialog
Brad Larson
fonte
fonte
Respostas:
Usado abaixo do código para exibir a lista personalizada no AlertDialog
fonte
De acordo com a documentação , existem três tipos de listas que podem ser usadas com um
AlertDialog
:Vou dar um exemplo de cada um abaixo.
Lista tradicional de escolha única
A maneira de fazer uma lista tradicional de escolha única é usar
setItems
.Versão Java
Não há necessidade de um botão OK, porque assim que o usuário clica em um controle de item da lista é retornado para
OnClickListener
.Versão Kotlin
Lista de botões de opção
A vantagem da lista de botões de opção sobre a lista tradicional é que o usuário pode ver qual é a configuração atual. A maneira de fazer uma lista de botões de opção é usar
setSingleChoiceItems
.Versão Java
Eu codifiquei o item escolhido aqui, mas você pode acompanhá-lo com uma variável de membro da classe em um projeto real.
Versão Kotlin
Lista de caixas de seleção
A maneira de fazer uma lista de caixas de seleção é usar
setMultiChoiceItems
.Versão Java
Aqui eu codifiquei os itens na lista que já foram verificados. É mais provável que você queira acompanhá-los em um arquivo
ArrayList<Integer>
. Veja o exemplo da documentação para mais detalhes. Você também pode definir os itens marcados comonull
se quiser sempre que tudo comece desmarcado.Versão Kotlin
Notas
context
código acima, não usegetApplicationContext()
ou você receberá umIllegalStateException
(veja aqui o porquê). Em vez disso, obtenha uma referência ao contexto da atividade, como comthis
.setAdapter
ousetCursor
ou passar em umCursor
ouListAdapter
nosetSingleChoiceItems
ousetMultiChoiceItems
.Para testar todos os exemplos acima, acabei de ter um projeto simples com um único botão que mostrava a caixa de diálogo quando clicada:
Relacionado
fonte
RecyclerView
no layout para isso.BUTTON_POSITIVE
) ou a posição do item clicado".Builder.setAdapter(ListAdapter, DialogInterface.OnClickListener)
:which
no listeneronClick
será igual à posição do item clicado.Builder.setOnItemSelectedListener
não terá efeito.Você pode usar uma caixa de diálogo personalizada.
Layout de caixa de diálogo personalizado.
list.xml
Na sua atividade
Editar:
Usando o alertdialog
custom.xml
Snap
fonte
fonte
ListAdapter
comsetSingleChoiceItems
(muito semelhante à chamada acima)Use a
import android.app.AlertDialog;
importação " " e depois escrevafonte
show()
faz os dois.Calling this method is functionally identical to: AlertDialog dialog = builder.create(); dialog.show();
que é diretamente dashow()
documentação do métodoIsso é muito simples
fonte
Como iniciante, sugiro que você acesse http://www.mkyong.com/android/android-custom-dialog-example/
Vou resumir o que basicamente faz
Dialog
dialog.show()
métodofonte
Em Kotlin:
fonte
Isto é como mostrar o diálogo de layout personalizado com o item de lista personalizado, pode ser personalizado conforme sua exigência.
PASSO - 1 Crie o layout da caixa de diálogo, ou seja: -
R.layout.assignment_dialog_list_view
PASSO - 2 Crie um layout de item de lista personalizado conforme sua lógica de negócios
R.layout.item_assignment_dialog_list_layout
PASSO - 3 Crie uma classe de modelo de dados de sua própria escolha
PASSO - 4 Crie um adaptador personalizado
}
PASSO - 5 Crie esta função e forneça ArrayList do modelo de dados acima neste método
Etapa - 6 Dando fundo ao canto redondo à caixa de diálogo
@ drawable / rectangle_round_corner_assignment_alert
fonte
Não é mais fácil criar um método para ser chamado após a criação da unidade EditText em um AlertDialog, para uso geral?
fonte
fonte