android - 构造函数 TimePickerDialog 未定义

标签 android dialog

我想使用 timePickerDialog 开发简单的闹钟应用程序。问题是构造函数 TimePickerDialog 在 extends fragment 上未定义。

我该怎么办?有什么建议吗?

请帮帮我。谢谢你的关心。

这是部分代码。

   public class ReminderFragment extends Fragment {

   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.fragment_reminder, container, false);

    textAlarmPrompt = (TextView) v.findViewById(R.id.alarmprompt);

    buttonstartSetDialog = (Button) v.findViewById(R.id.startSetDialog);
    buttonstartSetDialog.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            textAlarmPrompt.setText("");
            openTimePickerDialog(false);

        }});
     return v;
   }

   private void openTimePickerDialog(boolean is24r){
    Calendar calendar = Calendar.getInstance();

    timePickerDialog = new TimePickerDialog(
            ReminderFragment.this, 
            onTimeSetListener, 
            calendar.get(Calendar.HOUR_OF_DAY), 
            calendar.get(Calendar.MINUTE), 
            is24r);
    timePickerDialog.setTitle("Set Alarm Time");  

    timePickerDialog.show();

        }

     OnTimeSetListener onTimeSetListener= new OnTimeSetListener(){

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

        Calendar calNow = Calendar.getInstance();
        Calendar calSet = (Calendar) calNow.clone();

        calSet.set(Calendar.HOUR_OF_DAY, hourOfDay);
        calSet.set(Calendar.MINUTE, minute);
        calSet.set(Calendar.SECOND, 0);
        calSet.set(Calendar.MILLISECOND, 0);

        if(calSet.compareTo(calNow) <= 0){
            //Today Set time passed, count to tomorrow
            calSet.add(Calendar.DATE, 1);
        }

        setAlarm(calSet);
    }};
   }

最佳答案

使用 getActivity() 而不是这个 ReminderFragment.this。第一个参数是上下文 ReminderFragment.this 引用 ReminderFragmentgetActivity() 返回与此 Fragment 关联的 Activity。

 timePickerDialog = new TimePickerDialog(
        getActivity(), 
        onTimeSetListener, 
        calendar.get(Calendar.HOUR_OF_DAY), 
        calendar.get(Calendar.MINUTE), 
        is24r);

关于android - 构造函数 TimePickerDialog 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23156642/

相关文章:

android - 使用 jquery mobile 可以创建什么样的应用程序

java - android:layout_weight 考虑 FrameLayout 中嵌入 ImageViewer 的大小

android - 在 Android 中,停靠状态是什么意思

android - 致命异常 : android. view.InflateException:二进制 XML 文件行 #20

java - 未应用 Android 自定义对话框按钮样式

python - 用按钮填充 gtk.Dialog 窗口的操作区域 - 而不是让它们向右对齐

java - 暂停代码,直到用户在对话框提示中输入数据

java - 将对话消息/标题移至右侧

javascript - 在 Click 上设置变量并将其传递给另一个函数

x 秒后 Jquery 销毁对话框