DatePicker e TimePicker

Nesse artigo apresentaremos dois componentes do Android muito utilizados para a seleção de Hora e Data o DatePicker e o TimePicker.

Com o DatePicker o usuário pode escolher uma Data(Dia – mês – ano). Já com o TimePicker ele pode selecionar um horário(hora- minuto). Ambos os componentes são muito utilizados em sistemas para dispositivos móveis, principalmente em funcionalidades que envolvam agendamento.

Vamos a parte prática…

Crie um projeto Android no eclipse.
Esse projeto terá apenas uma Activity e um layout.xml. Chamarei a Activity de SelectTimeScreen e o layout de select_time.xml.

Vamos começar pelo layout.

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

    <DatePicker
        android:id="@+id/date_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TimePicker
        android:id="@+id/hour_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickMostrarData"
        android:text="Mostrar Data"
        />

</LinearLayout>

Veja que o nosso layout apenas possui os componentes DatePicker, TimePicker e um Button.
A intenção é que ao clicar no Butto os dados selecionados no DatePicker e TimePicker apareçam na tela em forma de um Toast.

Podemos ver um PrintScreen da tela com os componentes definidos nesse Layout, logo abaixo:
time_picker_red

Criaremos a nossa Activity, para tratar os eventos desse layout.

public class SelectTimeScreen extends Activity {
	
	private DatePicker datePicker = null;
	private TimePicker timePicker = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.select_time);
		datePicker = (DatePicker) findViewById(R.id.date_picker);
		timePicker = (TimePicker) findViewById(R.id.hour_picker);
		
		iniciarDatePicker();
		iniciarTimePicker();
	}
	
	private void iniciarTimePicker() {
		Calendar c = Calendar.getInstance();
		int currentHour = c.get(Calendar.HOUR);
		int currentMinute = c.get(Calendar.MINUTE);
		timePicker.setCurrentHour(currentHour);
		timePicker.setCurrentMinute(currentMinute);
	}
	
	private void iniciarDatePicker() { 
		Calendar c = Calendar.getInstance();
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH);
		int day = c.get(Calendar.DAY_OF_MONTH);
		OnDateChangedListener changedListener = new OnDateChangedListener() {
			
			@Override
			public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
				String valor = year + " - " + monthOfYear  + " - " + dayOfMonth;
				Log.i("DATA MUDANDO", valor);
				//Toast.makeText(SelectTimeScreen.this, valor, Toast.LENGTH_SHORT).show();
				
			}
		};
 
		datePicker.init(year, month, day, changedListener);
	}
	
	public void onClickMostrarData(View view) {
		int day = datePicker.getDayOfMonth();
		int month = datePicker.getMonth();
		int year = datePicker.getYear();
		
		int hour = timePicker.getCurrentHour();
		int minute = timePicker.getCurrentMinute();
		
		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append(day);
		stringBuilder.append("/");
		stringBuilder.append(month);
		stringBuilder.append("/");
		stringBuilder.append(year);
		stringBuilder.append(" ");
		stringBuilder.append(hour);
		stringBuilder.append(":");
		stringBuilder.append(minute);
		String horaEData = stringBuilder.toString();
		
		Toast.makeText(this, horaEData, Toast.LENGTH_SHORT).show();
		
	}

}

Na nossa Activity fazemos um bind dos componentes que estão no layout xml com o objeto java respectivo a cada um. Podemos ver que o método onClickMostrarData(View v), será executado quando o usuário clicar no botão Mostrar Data que definimos no Layout.xml.
Após ser clicado, os dados referentes as datas e horários serão extraídos dos respectivos componentes.
Com esses dados montamos uma String que será exibida na tela por meio de uma mensagem Toast.

Anúncios

,

  1. Deixe um comentário

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: