很抱歉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使用xml实例化2个片段,第一个片段实现列表SongFragment1,第二个片段应该显示某些片段。
最后我使用一个接口通过片段VoiceSong在片段SongFragment1和SongFragment2之间进行通信。
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正在崩溃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)
我有什么问题吗?在那种情况下你会做什么?
有关错误消息的任何线索吗?
非常感谢!
答案 0 :(得分:0)
我发现了与片段中的通信器接口相关联的问题。显然这不是授权?
这意味着我所做的必须在自己的活动中分开(2个传递数据omItemClick)?然后它不能在一个滑动标签内?