public class TimePickerFragment extends DialogFragment {    public static  final String EXTRA_HOUR="com.example.purplefragment.extra_hour";    public static final String EXTRA_MINUTE="com.example.purplefragment.extra_minute";    private static final String CURRENT_TIME_HOUR="com.example.purplefragment.current_time_hour";    private static final String CURRENT_TIME_MINUTE="com.example.purplefragment.current_time_minute";    private TimePicker mTimePicker;    public static TimePickerFragment newInstance(int hour,int minute)    {        Bundle bundle=new Bundle();        bundle.putInt(CURRENT_TIME_HOUR,hour);        bundle.putInt(CURRENT_TIME_MINUTE,minute);        TimePickerFragment dialog=new TimePickerFragment();        dialog.setArguments(bundle);        return dialog;    }    @Override    public Dialog onCreateDialog(Bundle savedInstanceState)    {        int hour=getArguments().getInt(CURRENT_TIME_HOUR);        int minute=getArguments().getInt(CURRENT_TIME_MINUTE);        View v= LayoutInflater.from(getActivity())                .inflate(R.layout.dialog_time,null);        mTimePicker=(TimePicker)v.findViewById(R.id.time_picker);        mTimePicker.setCurrentHour(hour);        mTimePicker.setCurrentMinute(minute);        return new AlertDialog.Builder(getActivity())                .setView(v)                .setTitle(R.string.time_picker_title)                .setPositiveButton(android.R.string.ok,                        new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                int hour=mTimePicker.getCurrentHour();                                int minute=mTimePicker.getCurrentMinute();                                sendResult(Activity.RESULT_OK,hour,minute);                            }                        })                .create();    }    private void sendResult(int resultCode,int hour,int minute)    {        if(getTargetFragment()==null)            return;        Intent intent=new Intent();        intent.putExtra(EXTRA_HOUR,hour);        intent.putExtra(EXTRA_MINUTE,minute);        getTargetFragment().onActivityResult(getTargetRequestCode(),resultCode,intent);    }}
<TimePicker xmlns:android="http://schemas.android.com/apk/res/android"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:id="@+id/time_picker">TimePicker>
mTimeButton=(Button)v.findViewById(R.id.crime_time);        Calendar calendar=Calendar.getInstance();        calendar.setTime(mCrime.getDate());        //一开始没有加final时        //使用newInstance方法传参数时会提示        // hour be accessed from within inner class,shoule be declare final        final int hour=calendar.get(Calendar.HOUR_OF_DAY);        final int minute=calendar.get(Calendar.MINUTE);        mTimeButton.setText(hour+":"+minute);        mTimeButton.setOnClickListener(new View.OnClickListener(){            @Override            public void onClick(View v)            {                mIsChange=true;                FragmentManager fragmentManager=getFragmentManager();                TimePickerFragment dialog=TimePickerFragment.newInstance(hour,minute);                dialog.setTargetFragment(CrimeFragment.this,REQUEST_TIME);                dialog.show(fragmentManager,DIALOG_TIME);                setIsChangeResult();            }        });
//为什么之前个体extra默认值设为0的时候,我只点了修改日期的按钮        //时间会被重置为0呢,讲道理没有执行这个方法啊        if(requestCode==REQUEST_TIME){            int hour=intent.getIntExtra(TimePickerFragment.EXTRA_HOUR,mCrime.getDate().getHours());            int minute=intent.getIntExtra(TimePickerFragment.EXTRA_MINUTE,mCrime.getDate().getMinutes());            mTimeButton.setText(hour+":"+minute);            mCrime.getDate().setHours(hour);            mCrime.getDate().setMinutes(minute);            updateDate();        }

更多相关文章

  1. 探索FragmentTransaction#commit()抛出IllegalStateException
  2. Android学习笔记-Android初级 (二)
  3. Android(安卓)Retrofit2网路编程实现方法详解
  4. Android存储登陆信息
  5. Android移动应用知识点总汇①
  6. Activity的基本理解
  7. Android(安卓)StudioRecyclerView,fragment,adapter的用法
  8. Android关于在Canvas类里的绘制线程问题汇总
  9. ViewBinding与RecycleView(一)

随机推荐

  1. 如何从其他dtypes创建一个numpy dtype?
  2. 独立于数据库的MAX()函数在SQLAlchemy中
  3. 使用python api递归计算每个Dropbox文件
  4. Python为8bit深度图像应用color map
  5. 可变序列长度数据的分类
  6. 'str'对象不能解释为groupby上的整数
  7. 基于Python的XSS测试工具XSStrike使用方
  8. 乘客的Django应用程序显示空主页
  9. 如何用所有可能的方式将一个列表分割成对
  10. 安装:Ubuntu12.04+Python3+Django1.7.9过