使用viewpager和fragment的未知粉碎我的android应用程序

使用viewpager和fragment的未知粉碎我的android应用程序,android,xml,android-fragments,native,Android,Xml,Android Fragments,Native,这是我的android项目的完整代码。 在这里,我使用viewpager和3个片段。在第一个片段中,我有一个edittext和一个按钮。当我单击button时,它会将数据发送到托管活动,然后从托管活动将数据发送到第二个活动,并在textview中显示数据。第三个片段只是普通页面 当运行我的程序并在第一个片段中用edittext编写一些内容并单击按钮时,它会像我预期的那样将数据发送到第二个片段,但问题是,如果我访问第三个片段,然后来到第一个片段,则执行与上面所述相同的任务,我的程序会将数据粉碎,而

这是我的android项目的完整代码。 在这里,我使用viewpager和3个片段。在第一个片段中,我有一个edittext和一个按钮。当我单击button时,它会将数据发送到托管活动,然后从托管活动将数据发送到第二个活动,并在textview中显示数据。第三个片段只是普通页面

当运行我的程序并在第一个片段中用edittext编写一些内容并单击按钮时,它会像我预期的那样将数据发送到第二个片段,但问题是,如果我访问第三个片段,然后来到第一个片段,则执行与上面所述相同的任务,我的程序会将数据粉碎,而不是将数据发送到第二个片段

它在日志中显示以下错误

    E/AndroidRuntime(773): FATAL EXCEPTION: main
    E/AndroidRuntime(773): Process: com.example.swipeapp, PID: 773
    E/AndroidRuntime(773): java.lang.ClassCastException:  
    com.example.swipeapp.FirstActivity cannot be cast tocom.example.swipeapp.SecondActivity
    E/AndroidRuntime(773):  at           com.example.swipeapp.MainActivity.sendData(MainActivity.java:38)
    E/AndroidRuntime(773):  at com.example.swipeapp.FirstActivity$1.onClick(FirstActivity.java:31)
    E/AndroidRuntime(773):  at android.view.View.performClick(View.java:4424)
    E/AndroidRuntime(773):at android.view.View$PerformClick.run(View.java:18383)
    E/AndroidRuntime(773):  at android.os.Handler.handleCallback(Handler.java:733)
请给我任何建议,为什么此应用程序会凌驾于此上的任何教程或文档,我将不胜感激……提前感谢:

这是我的片段适配器代码

public class FragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter{

public FragmentAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
}

@Override
public int getIconResId(int index) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public Fragment getItem(int position) 
{
    // TODO Auto-generated method stub
    Fragment fragment = new FirstActivity();
    switch(position){
    case 0:
        fragment = new FirstActivity();
        break;
    case 1:
        fragment = new SecondActivity();
        break;
    case 2:
        fragment = new ThirdActivity();
        break;

    }
    return fragment;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 3;
}

@Override
public CharSequence getPageTitle(int position){
    String title = "";
    switch(position){
    case 0:
        title = "First Fragment";
        break;
    case 1:
        title = "Second";
        break;
    case 2:
        title = "Third";
        break;

    }
    return title;
}

}

实际上,您试图从第一个片段转换到第二个片段是非法的,我知道如何解决这个问题并给你一个解决方案,但它太长了。请给我任何类型的文档链接或教程来解释我的想法,或者至少告诉我哪里做错了,这样我就可以搜索这个主题@noxsaeed你的问题在这里SecondActivity rf=SecondActivity getSupportFragmentManager.findFragmentByIdR.id.pager;在sendData功能中,您使用寻呼机id调用findFragmentById,寻呼机包含第一个片段而不是第二个片段如果是这样,那么当我单击按钮并将数据发送到第二个片段时,它是如何工作的……我想您不明白我的问题……我的应用程序工作正常,直到我转到第三个片段。。。。如果我转到第三个片段,然后来到第一个片段并单击按钮,那么应用程序将崩溃,否则它将正常工作@NoXSaeedi祝你解决问题好运。你真正想做的:O@Dev Carlsberg
@Override
public Fragment getItem(int position){
// TODO Auto-generated method stub
Fragment fragment = new Fragment();
switch(position){
case 0:
    fragment = new FirstActivity();
    break;
case 1:
    fragment = new SecondActivity();
    break;
case 2:
    fragment = new ThirdActivity();
    break;

}
return fragment;
}