Quero mostrar a janela pop-up do datepicker. Encontrei alguns exemplos, mas não estou conseguindo corretamente. Eu tenho um edittext e quero que, quando eu clicar no edittext, a caixa de diálogo datepicker seja exibida e depois de definir a data, a data deve aparecer no edittext no formato dd / mm / aaaa. Por favor, forneça um código de exemplo ou bons links.
android
android-datepicker
Surabhi Pandey
fonte
fonte
Respostas:
Tente isso no arquivo XML:
Agora no arquivo Java:
Agora adicione o método na atividade acima.
Adicione
android:focusable="false"
no arquivo xml do EditText para permitir um único toque.fonte
android:focusable="false"
eonclicklistner
android:longClickable="false"
também. Caso contrário, o usuário poderá exibir a opção de colar no campo (e, assim, inserir datas inválidas).Não foi possível fazer com que nenhum deles funcionasse, portanto, adicionarei o meu caso que ajude.
Também algo que não é mencionado nos outros. Certifique-se de colocar o seguinte no EditText xml.
Caso contrário, como no meu caso, o teclado continuará aparecendo. Espero que isso ajude alguém
fonte
fonte
Há outra maneira reutilizável melhor:
Crie uma classe:
Em seguida, chame esta classe na função onCreate:
fonte
class setDate implements View.OnFocusChangeListener, DatePickerDialog.OnDateSetListener {
:?ARQUIVO JAVA
fonte
É assim que eu faço: Semelhante à resposta escolhida, mas usando uma classe de diálogo estático para que seja mais reutilizável e também usando onFocusChange em vez de onClick.
E a caixa de diálogo datepicker.
fonte
A resposta selecionada não funcionou para mim, pois tive que tocar na caixa EditText uma vez e depois tocar novamente antes que o OnClickListener fosse acionado. Consegui consertar isso substituindo OnClickListener por OnTouchListener, caso alguém tenha encontrado um problema semelhante, aqui está a aparência do meu código:
fonte
# 1 Desejo mostrar um selecionador de datas com a data atual como pré-selecionada (eu uso o canivete para injeção)
2. Se desejar pré-selecionar a data, substitua a última parte por
você pode obtê-lo usando a variável myCalendar ou diretamente o texto em sua exibição.
fonte
Uma solução usando fragmentos, MvvmCross e Xamarin.Android
fonte
fonte
Minha aula para o show
DatePicker
. Eu posso usar paraEditText
,TextView
ouButton
Usando
fonte
Usando DataBinding:
(ver
focusable
,inputType
eonClick
)Vista interna
fonte
Uso:
fonte
Use esta técnica simples para fazer isso:
Etapa 1: CRIAR UM DIÁLOGO DE FRAGMENTOS
Etapa 2: NA ATIVIDADE NECESSÁRIA SIGA ESTE
A atividade deve implementar: DatePickerDialog.OnDateSetListener
Defina onClickListener em um botão:
Etapa 3: Substituir OnDateSetListener
Portanto, podemos usar qualquer formatação para a data :)
fonte
Eu tentei de todas as maneiras sugeridas, mas todas elas têm seus próprios problemas.
A melhor solução, na minha opinião, seria usar um layout de quadro como abaixo:
e adicionando o código DatePickerDialog , que foi lindamente escrito na resposta do @ Android.
fonte
Achei melhor substituir a classe EditText ...
E use isso no XML ...
fonte
fonte
Usa isto
fonte
Porta Kotlin, chame a função setDatePicker
fonte
fonte
Tente isto
fonte
editText.setOnClickListener (novo View.OnClickListener () {
fonte
Caixa de diálogo Seletor de datas
fonte
Tente o seguinte:
fonte
você também pode definir a data mínima e a data máxima por essas instruções.
Nota: adicione estas linhas antes de datepickerDialog.show (); você obterá a data assim = 12/2/2017.
Espero que minha resposta ajude.
fonte
Isso funcionou para mim em janeiro de 2020
Parte XML:
Peça Java:
fonte
Aqui está uma função de extensão Kotlin:
Uso:
Em Atividade:
Em fragmentos:
fonte
Minha solução para o Xamarin.Android com MvvmCross baseado em Linh:
Para uma versão baunilha do Xamarin.Android, substitua o WeakSubscribe por uma assinatura regular do evento Click do EditText, não esquecendo de cancelar a assinatura na substituição do método Dispose.
fonte