有很多方法,但我正在使用这个:
的活动:
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;
}
}
片段:
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
- 套餐相同
由于
答案 0 :(得分:1)
您正在MainActivity中打开片段,并希望在MyActivity中进行强制转换。这就是它显示ClassCastException
的原因答案 1 :(得分:1)
创建MainActivity2的对象,只需访问您的方法:
MainActivity2 mn2=new ManiActivity2();
mn2.getMyData();
答案 2 :(得分:0)
从android.app.Fragment更改为support.v4.app.Fragment this。
答案 3 :(得分:0)
在您的活动中
WEBGL_draw_buffers
在片段中> onCreateView方法。
Bundle bundle = new Bundle();
bundle.putString("name", "StackOverFlow");
// set Fragmentclass Arguments
Fragmentclass stackOverflow = new Fragmentclass();
stackOverflow.setArguments(bundle);