Android Java Beispiel: TimePicker erstellen
Das Code Beispiel zeigt wie man eine Android Code Picker
zum Wählen oder Einstellen einer Zeit erstellen kann.
Der TimePicker kann zum Beispiel für einen Alarm verwendet
werden.
Android,
Java, XML, TimePicker Calendar TimePickerFragment extends DialogFragment
ActivityMain.xml
In der Main Activity sind ein Textfeld und ein Button
Activity_main.xml
Android
Xml Code
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/txtViewAlarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Set Time= ..:.."
android:textSize="28sp"
/>
<Button
android:id="@+id/btnSetAlarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtViewAlarm"
android:layout_centerHorizontal="true"
android:onClick="BtnAlarmOnClick"
android:text="Set Alarm"
/>
</RelativeLayout>
|
MainActivity.java
In der MainActivity.java Code seite gibt es zwei Punkte
1)
TimePicker aufrufen
2)
Gewählte Zeit zurück übernehmen
Aufruf des TimePickers im Button
DialogFragment
timePickerDialog =new TimePickerFragment();
timePickerDialog.show(getSupportFragmentManager(),"time
picker");
|
Rückgabe Event aus
gewählter Zeit einbauen
Und zusätzlich noch mit Ctrl+O den Bereich onTimeSet
erstellen
Rückgabe
der gewählten Uhrzeit
damit der Event onTimeSet ausgeführt wird, muss in der
Activity mit Implement der TimePickerDialog eingebunden werden.
@Override
public void onTimeSet(TimePicker timePicker, int intHourOfDay, int intMinute) {
//--------<
onTimeSet() >--------
//*get Time after Picked in Dialog
//*comes from:..Activity implements
TimePickerDialog.OnTimeSetListener
TextView
textViewPicked=(TextView) findViewById(R.id.txtViewAlarm);
textViewPicked.setText(("TimePicked="
+ intHourOfDay + ":" + intMinute ));
//--------</
onTimeSet() >--------
}
|
Code
MainActivity.java
package com.example.demo_alarm;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
@Override
//============<
Activity >==================
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//============</
Activity >==================
//============< Buttons
>==================
public void BtnAlarmOnClick(View view) {
//-------<
BtnAlarmOnClick >--------
//*click Button to set Time
DialogFragment timePickerDialog =new TimePickerFragment();
timePickerDialog.show(getSupportFragmentManager(),"time
picker");
//-------</
BtnAlarmOnClick >--------
}
@Override
public void onTimeSet(TimePicker timePicker,
int intHourOfDay, int intMinute) {
//--------<
onTimeSet() >--------
//*get Time after Picked in
Dialog
//*comes from:..Activity
implements TimePickerDialog.OnTimeSetListener
TextView textViewPicked=(TextView) findViewById(R.id.txtViewAlarm);
textViewPicked.setText(("TimePicked="
+ intHourOfDay + ":" + intMinute ));
//--------</
onTimeSet() >--------
}
//============</ Buttons >==================
}
|
TimePicker
Dialog
Damit man einen TimePicker Dialog bekommt, muss man eine
neue Java Klasse erstellen
Hierzu auf app->java->aktuelles
Projekt klicken ->new Java Class
Und als Name : TimePickerFragment
eintragen
Dann den Event: onCreateDialog(..) erstellen
Mit Ctrl+O und Oncreatedialog eintippen
Dadurch wird in die java Datei der Bereich
TimePickerFragement mit Dialog onCreateDialog erstellen
package com.example.demo_alarm;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import java.util.Calendar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
public class TimePickerFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState)
{
//return
super.onCreateDialog(savedInstanceState);
//< start with actual Time
>
Calendar cal=Calendar.getInstance();
int intHour=cal.get(Calendar.HOUR);
int intMinute=cal.get(Calendar.MINUTE);
//</ start with
actual Time >
return new TimePickerDialog(
getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(),intHour,intMinute,true);
}
}
|