From d82cccacccbe182148b93b23acd37a66c71c33d3 Mon Sep 17 00:00:00 2001 From: wujie Date: Wed, 30 Aug 2017 11:36:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Bugfix=E3=80=91=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=97=B6=EF=BC=8C=E9=97=AA=E9=80=80=EF=BC=88?= =?UTF-8?q?=20java.lang.IllegalStateException:=20Fragment=20already=20adde?= =?UTF-8?q?d:=20TimePickerDialog{6f0e3f6=20#0=20hour=5Fminute}=EF=BC=89?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jzxiang/pickerview/TimePickerDialog.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/TimePickerDialog/src/main/java/com/jzxiang/pickerview/TimePickerDialog.java b/TimePickerDialog/src/main/java/com/jzxiang/pickerview/TimePickerDialog.java index 5e86668..495b3bb 100644 --- a/TimePickerDialog/src/main/java/com/jzxiang/pickerview/TimePickerDialog.java +++ b/TimePickerDialog/src/main/java/com/jzxiang/pickerview/TimePickerDialog.java @@ -6,6 +6,9 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -57,6 +60,20 @@ private void initialize(PickerConfig pickerConfig) { mPickerConfig = pickerConfig; } + @Override + public void show(FragmentManager manager, String tag) { + Fragment fragment = manager.findFragmentByTag(tag); + FragmentTransaction ft = manager.beginTransaction(); + if (fragment != null && fragment.isAdded()) { + ft.show(fragment); + } else { + if (fragment == null || !fragment.isAdded()) { + ft.add(this, tag); + } + } + ft.commitNow(); + } + @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -205,27 +222,27 @@ public Builder setCurrentMillseconds(long millseconds) { return this; } - public Builder setYearText(String year){ + public Builder setYearText(String year) { mPickerConfig.mYear = year; return this; } - public Builder setMonthText(String month){ + public Builder setMonthText(String month) { mPickerConfig.mMonth = month; return this; } - public Builder setDayText(String day){ + public Builder setDayText(String day) { mPickerConfig.mDay = day; return this; } - public Builder setHourText(String hour){ + public Builder setHourText(String hour) { mPickerConfig.mHour = hour; return this; } - public Builder setMinuteText(String minute){ + public Builder setMinuteText(String minute) { mPickerConfig.mMinute = minute; return this; }