java - TimePicker.getHour() 和 TimePicker.getMinute() 返回当前小时和分钟
问题描述
我正在制作一个提醒应用程序。它有一个活动,您可以在其中看到警报和一个浮动操作按钮以添加新警报。从该按钮打开我的自定义对话框以设置警报。它应该返回在 TimePicker 中选择的小时和分钟,但它返回当前的小时和分钟
这是类:
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();
}
});
推荐阅读
- asp.net - 在 ASP.NET IIS 中运行的算法比在控制台中慢?
- amazon-web-services - “Access-Control-Allow-Origin”标头未在 *.s3.amazonaws.com 子域上发送
- amazon-web-services - AWS 安全组与网络 ACL
- google-cloud-platform - 我可以使用 googleapiclient python 客户端复制`create-with-container` gcloud sdk 命令吗
- python - 如何在带有熊猫的数据框中显示等于给定值的匹配元素?
- python - 代码的左侧如何为计数和 bin_edges 赋值?谁能简要解释一下这段代码
- javascript - highmap 上的数据点会减慢 Angular 应用程序的速度
- azure-service-fabric - 如何在不同端口上使用两个无状态服务配置 Service Fabric
- python - 平铺固定大小的矩形以覆盖给定的点集
- xilinx - 运行时出错
在