我在Android应用中创建了一个屏幕,其中包含一个像这样的日期选择器:
TextView userDateView = (TextView) getView().findViewById(R.id.text_user_date);
userDateView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.setListner(OverviewFragment.this);
newFragment.show(getFragmentManager(), "datePicker");
}
});
我创建了一个回调函数,它接收日期并更新userDateView,这一切都正常。在另一个屏幕中,我现在希望在彼此旁边有两个日期,用户可以选择这两个日期。不幸的是,回调不知道用户启动datepicker片段的两个日期中的哪一个。
有人知道我怎么能知道datepickerFragment从哪个按钮开始?欢迎所有提示!
答案 0 :(得分:1)
一种简单的方法是为每个DatePickerFragment提供一个参数,并将此参数发送回您的回调,例如Activity.onActivityResult
上的requestCode。
了解如何为Fragments提供参数: http://developer.android.com/reference/android/app/Fragment.html#setArguments(android.os.Bundle)
顺便说一下,你可以在这里找到一种不同的方法:
答案 1 :(得分:0)
尝试这样的事情:
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.setListner(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {}
});
newFragment.show(getFragmentManager(), "datePicker");