我有一个带有RecyclerView的片段,用户可以在其中引入一个或多个时区,选择开始和结束时间。
当用户每小时点击一下时,会出现时间选择器:
选择小时后,我想将文本小时更改为用户选择的小时。我从RecyclerView适配器显示timePicker但我不知道如何从onTimeSet传递来修改小时的textView。据我所知,它必须在RecyclerView适配器内。
答案 0 :(得分:0)
最后我找到了解决方案。所有这些都发生在RecyclerView Adapter中。我在textView中添加了一个onClick监听器。然后我在创建Dialog Fragment时传递视图。
在onBindViewHolder中:
horarioViewHolder.mFromTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new TimePickerFragment(v);
newFragment.show(((ChefAltaUnoActivity)mContext).getSupportFragmentManager(), "timePicker");
}
});
在TimePickerFragment中:
public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
private View mView;
public TimePickerFragment(View view) {
mView = view;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
TimePickerDialog timePicker = new TimePickerDialog(getActivity(), R.style.CustomTimePickerDialogTheme, this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
// Create a new instance of TimePickerDialog and return it
return timePicker;
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
((TextView) mView).setText("format the time text as you want.");
}
}
希望它可以帮助别人。