2016-03-10 2 views
0

В настоящее время я начинаю тестировать не используя интерфейс для передачи конкретного слушателя от активности к фрагментам.Можно ли захватить слушателя через фрагмент?

этот код работает:

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    //......Skip 
    return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener)getActivity(), year, month, day); 
} 

Но когда я делаю это же между фрагментами, это, кажется, не работает.

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    //...Skip 
    return new TimePickerDialog(getActivity(), ((TimePickerDialog.OnTimeSetListener)((newFragment)getParentFragment())) ,hour, minute,false); 
} 

Я протестировал с помощью журнала, и слушатель из родительского фрагмента вроде бы не вызывается. Я также пробовал с getContext.

Имею ли я сообщение о неправильном прослушивании? Благодарю.

+0

Вы видите какое-либо аварии/исключение брошенного (Как ClassCastException)? И почему вы набрасываете 'getParentFragment()' на 'newFragment', а затем кастинг на' OnTimeSetListener' – Bhargav

+0

newFragment - это имя родительского фрагмента. Я уже пытался не использовать, но, похоже, не работает – TanakaSakana

+0

well direct cast 'getParentFragment()' к 'OnTimeSetListener'? – Bhargav

ответ

0

Try с

 public Dialog onCreateDialog(Bundle savedInstanceState) { 
//...Skip 
return new TimePickerDialog(getActivity(), ((TimePickerDialog.OnTimeSetListener)getParentFragment()) ,hour, minute,false); 

}

Убедитесь, родительский фрагмент реализовал TimpePickerDialog.OnTimeSetListener

И Yout объект прослушивателя в TimePickerDialog инициализируется с экземпляром ParentFragment вы используете.

+0

Я делал это раньше, кажется, не работает – TanakaSakana

1

Попробуйте это: ваш фрагмент должен реализует TimePickerDialog.OnTimeSetListener, DatePickerDialog.OnDateSetListener

  DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(
        FragmentName.this, //pass fragment name 
        Year, 
        Month, 
        Day 
      ); 
Смежные вопросы