[英]Passing data from Activity to Fragment (by accessing activity from fragment) giving Class Cast Exception
There are so many ways but i am using this one: 有很多方法,但是我正在使用这种方法:
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;
}
}
BUT its giving me class cast exception: 但是它给了我类强制转换异常:
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 java.lang.ClassCastException:com.example.dev03.xyz.Fragments.MainActivity无法转换为com.example.dev03.xyz.Fragments.Main2Activity
-- Package is same -包装相同
Thanks 谢谢
You are opening your fragment in MainActivity and want to cast in MyActivity. 您正在MainActivity中打开片段,并想要投射到MyActivity中。 That's why it is showing ClassCastException 这就是为什么它显示ClassCastException
Create an object of MainActivity2 and simply access your method: 创建MainActivity2的对象并只需访问您的方法:
MainActivity2 mn2=new ManiActivity2();
mn2.getMyData();
从android.app.Fragment更改为support.v4.app.Fragment。
In your Activity 在您的活动中
Bundle bundle = new Bundle();
bundle.putString("name", "StackOverFlow");
// set Fragmentclass Arguments
Fragmentclass stackOverflow = new Fragmentclass();
stackOverflow.setArguments(bundle);
In Fragments > onCreateView Method. 在“片段”>“ onCreateView方法”中。
String strName = getArguments().getString("name");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.