java - 将数据从 Activity 传递到 Fragment(通过从 Fragment 访问 Activity)给出 Class Cast Exception

标签 java android android-fragments

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

Activity :

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;
}
}

但它给了我类转换异常:

 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 无法转换为 com.example.dev03.xyz.Fragments.Main2Activity

-- 包是一样的

谢谢

最佳答案

创建 MainActivity2 的对象并简单地访问您的方法:

  MainActivity2 mn2=new ManiActivity2();
  mn2.getMyData();

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

相关文章:

java - 简单的图像旋转

android - 拒绝剪贴板访问 com.google.android.as(Android P 版本)

android - 在android/sqlite数据库中增加一条记录的值

Android 抽屉导航内容

android - 了解与 Activity 有关的 FragmentManager 和 FragmentTransaction 生命周期

android - 为什么会调用fragment的onCreateView、onCreate、onActivityCreated

java - 对话流应用实现

java - 每个案例一个单元或每个断言一个单元

java - 使用处理程序的线程交互

java - 从 fragment 更新 UI