java - 将数据从 Activity 传递到 Fragment Class Cast Exception

标签 java android android-fragments

有很多方法,但我正在使用这个:

Activity :(Main2Activity)

public class Main2Activity extends AppCompatActivity{

private String myString = "hello";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    ...
}

public String getMyData() {
    return myString;
}
} 

fragment :

public class MyFragment extends android.support.v4.app.Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    Main2Activity activity = (Main2Activity ) getActivity();
    String myDataFromActivity = activity.getMyData();
    return view;
}
}

主要 Activity :

    public class MainActivity extends AppCompatActivity {

   -------
    @Override
    protected void onCreate(Bundle savedInstanceState) {
     }
      ---
     private void setupViewPager(ViewPager viewPager) {

    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new MyFragment(), "MyFragment");

    viewPager.setAdapter(adapter);
    }

但它给了我类转换异常:

java.lang.ClassCastException: com.example.dev03.xyz.Activities.MainActivity cannot be cast to com.example.dev03.xyz.Fragments.MyActivity

java.lang.ClassCastException: com.example.dev03.xyz.Fragments.MainActivity cannot be cast to com.example.dev03.xyz.Fragments.Main2Activity

-- 包是一样的

谢谢

最佳答案

您在 MainActivity 中创建您的 Fragment,它属于它,因此当您使用 getAcitvity() 时,您获得的是 MainActivity 而不是 Main2Activity。

关于java - 将数据从 Activity 传递到 Fragment Class Cast Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37071725/

相关文章:

android - 如何在抽屉导航中添加 Tabhost

java - 奇怪的 "String index out of range: 0"错误

java - JScrollPane 没有出现?

java - cplex - 矩阵值和索引的最小化和求和

android - 如何像锁屏应用一样禁用Android中的主页按钮?

Android:如何在弹出菜单中更改背景颜色

android - 按回不返回到上一个 fragment

java - 在飞行Android上解析JSON

java - 不能在 Android Studio 项目中包含 JSONParser

java - 如何从 fragment 中的后台线程更新 UI