问题描述
我有两个EditText。首先,用于打开DatePicker,其次用于打开TimePicker。 我已经为两个组件创建了DialogFragment。两者都有效。全部在片段中。
这是我的片段。当选择的DatePicker时间的价值消失,当我选择TimePicker日期也消失了。我已经有saveInstance了。请帮忙!!谢谢
DialogFragment datePicker;
TimePickerFragment timePicker;
EditText departureEdt;
EditText departureTimeEdt;
String selectedDate;
String selectedTime;
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
if (outState != null) {
outState.putString("selectedDate",selectedDate);
outState.putString("selectedTime",selectedTime);
}
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
selectedDate = savedInstanceState.getString("selectedDate");
selectedTime = savedInstanceState.getString("selectedTime");
departureEdt.setText(selectedDate);
departureTimeEdt.setText(selectedTime);
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
final FragmentManager fm = ((AppCompatActivity) getActivity()).getSupportFragmentManager();
View view = inflater.inflate(R.layout.transportation_fragment,container,false);
departureEdt = view.findViewById(R.id.departure_date);
departureEdt.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePicker = new DatePickerFragment();
datePicker.setTargetFragment(TransportationFragment.this,1);
datePicker.show(fm,"datePicker");
}
});
departureTimeEdt = view.findViewById(R.id.departure_time);
departureTimeEdt.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timePicker = new TimePickerFragment();
timePicker.setTargetFragment(TransportationFragment.this,1);
timePicker.show(fm,"timePicker");
}
});
return view;
}
@Override
public void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
// get date from string
selectedDate = data.getStringExtra("selectedDate");
selectedTime = data.getStringExtra("selectedTime");
// set the value of the editText
departureEdt.setText(selectedDate);
departureTimeEdt.setText(selectedTime);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)