Извините за долгое Q!салфетки с вложенными фрагментами
У меня есть следующий код, который отлично работает: нажмите кнопку, которая запускает 2 фрагмента, 1 со списком, а другой показывает некоторые данные по щелчку элемента. Поскольку у меня есть несколько кнопок, делающих то же самое, я пытаюсь изменить код, чтобы прокручивать вкладки.
Итак, у меня есть функция MenuVoice, у которой есть VoicePagerAdapter, который реализует фрагменты.
MenuVoice
public class MenuVoice extends FragmentActivity {
...
viewPager = (ViewPager) findViewById(R.id.pager_voice);
FragmentManager fm = getSupportFragmentManager();
voicePagerAdapter = new VoicePagerAdapter(getSupportFragmentManager());
voicePagerAdapter.voicePassInt(lang,level);
voicePagerAdapter.voicePassString(login);
viewPager.setAdapter(voicePagerAdapter);
VoicePagerAdapter
public class VoicePagerAdapter extends FragmentPagerAdapter {
...
@Override
public Fragment getItem(int index) {
Bundle bundle;
Fragment c = null;
if (index == 0) {
c = new VoiceSong_fragment();
VoiceSong конкретизирует 2 фрагмента, используя XML, 1-й фрагмент, реализующий список SongFragment1 и второй один, который должен отображать коснуться.
И, наконец, я использую интерфейс для связи между фрагментом SongFragment1 и SongFragment2 через фрагмент VoiceSong.
XML
<fragment
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.example.bernard.speechparole.SongFragment1"
android:id="@+id/song_fragment1"
/>
<fragment
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.example.bernard.speechparole.SongFragment2"
android:id="@+id/song_fragment2"
/>
SongFragment1 разваливается на initialisatio интерфейса comunicator:
public class SongFragment1 extends Fragment implements AdapterView.OnItemClickListener{
...
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
--> communicator = (SongCommunicator) getActivity();
с MSG:
java.lang.ClassCastException: com.example.bernard.speechparole.MenuVoice cannot be cast to com.example.bernard.speechparole.SongCommunicator
at com.example.bernard.speechparole.SongFragment1.onActivityCreated(SongFragment1.java:78)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1794)
Что я делаю не так? Что бы вы сделали в этом сценарии?
Любая подсказка об ошибке?
Большое спасибо!