У меня есть метод в моей деятельности:Как передать onDateSet метод DialogFragment
// activity.class
private void setDate(int year) {
view.setText(new StringBuilder().append(year));
}
Мне нужно, чтобы это можно назвать, когда DatePickerDialog
«s OnDateSetListener
называется:
// DatePickerDialogFragment.class
public class DatePickerDialogFragment extends DialogFragment {
private DatePickerDialog.OnDateSetListener l = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(int year) {
<activity>.setDate(year)
}
}
}
<activity>
(или, тем не менее, я согласен сделать это) содержит ссылку на представление, которое необходимо установить. Как мне получить доступ к нему в DialogFragment
?
Я пытался делать что-то вроде этого:
//activity.class
DatePickerDialogFragment frag = new DatePickerDialogFragment(this);
Но как я могу получить доступ к методу активности в файле DatePickerDialogFragment
класса?
Не могли бы вы предоставить более полный пример? Я не понимаю, как этот подход позволяет мне вводить зависящий от представления метод из моей активности в класс-помощник. – dopatraman
Какой шаг вы не понимаете? Активность показывает диалог, поэтому диалог будет содержать внутреннюю ссылку на активность (getActivity()). Внедряя некоторый интерфейс, можно вызвать вызов метода этой деятельности без «уродливого» кастинга для самой реализации самой операции. – aelimill
Этот подход, я считаю, излишне подробен. Я попытался создать базовый класс 'DatePickerActivity', который имеет метод' setDate() ', а затем листинг текущего' getActivity() 'to DatePickerActivity', но это, я считаю, может вызвать проблемы с производительностью. Мысли? – dopatraman