我正在制作一个提醒应用程序。它有一个 Activity ,您可以在其中看到警报和一个 float 操作按钮以添加新警报。从该按钮我的自定义对话框将打开以设置警报。它应该返回在 TimePicker 中选择的小时和分钟,但它返回当前的小时和分钟
这是类(class):
public class AlarmKurDialog extends AppCompatDialogFragment {
TimePicker timePicker;
SeekBar seekBar;
TextView bardakAdetiTxt;
Button alarmEkleBtn;
int quantity;
int hour;
int minute;
AlarmKurDialogListener listener;
public interface AlarmKurDialogListener{
void alarmBilgisiGetir(int hour, int minute, int quantity);
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.dialog_alarm_kur, null);
builder.setView(view);
timePicker = view.findViewById(R.id.timePicker1);
seekBar = view.findViewById(R.id.seekBar);
bardakAdetiTxt = view.findViewById(R.id.txt_adet);
alarmEkleBtn = view.findViewById(R.id.button);
timePicker.setIs24HourView(true);
if (Build.VERSION.SDK_INT >= 23 ) {
// getHour and getMinute returns current hour and minute
hour = timePicker.getHour();
minute = timePicker.getMinute();
Log.i("mert", "getHour:getMinute - " + hour + ":" + minute);
}
else {
hour = timePicker.getCurrentHour();
minute = timePicker.getCurrentMinute();
Log.i("mert", "getCurrentHour:getCurrentMinute - " + hour + ":" + minute);
}
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
quantity = 1 + progress;
bardakAdetiTxt.setText(String.valueOf(quantity));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
alarmEkleBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.alarmBilgisiGetir(hour, minute, quantity);
dismiss();
}
});
return builder.create();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try{
listener = (AlarmKurDialogListener) context;
}catch (ClassCastException e){
throw new ClassCastException(context.toString() + "AlarmKurDialogListener implement etmek gerekli");
}
}}
最佳答案
试试这个:
alarmEkleBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hour = timePicker.getHour();
minute = timePicker.getMinute();
listener.alarmBilgisiGetir(hour, minute, quantity);
dismiss();
}
});
关于java - TimePicker.getHour() 和 TimePicker.getMinute() 返回当前小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56194324/