如何将Activity中的Intent数据转换为Fragment

时间:2016-03-18 19:09:38

标签: java android android-fragments android-intent

这是我的MainActivity,我将数据传递给另一个Recipient Fragment类

Intent recipientsIntent = new Intent(this, RecipientsActivity.class);
            recipientsIntent.setData(mMediaUri);

            String fileType;
            if (requestCode == TAKE_PHOTO_REQUEST) {
                fileType = ParseConstants.TYPE_IMAGE;
            }
            else {
                fileType = ParseConstants.TYPE_VIDEO;
            }

            recipientsIntent.putExtra(ParseConstants.KEY_FILE_TYPE, fileType);
            startActivity(recipientsIntent);

我已将此意图调用到我的Recipients.class Fragment

mMediaUri = getActivity().getIntent().getData();
        mFileType = getActivity().getIntent().getExtras().getString(ParseConstants.KEY_FILE_TYPE);

这给了我一个关于Recipients.class Fragment的Class Cast异常的错误。

1 个答案:

答案 0 :(得分:1)

从活动中您按意图发送数据:

        Intent recipientsIntent = new Intent(this, RecipientsActivity.class);
        recipientsIntent.setData(mMediaUri);

        String fileType;
        if (requestCode == TAKE_PHOTO_REQUEST) {
            fileType = ParseConstants.TYPE_IMAGE;
        }
        else {
            fileType = ParseConstants.TYPE_VIDEO;
        }

        recipientsIntent.putExtra(ParseConstants.KEY_FILE_TYPE, fileType);


        // set Fragmentclass Arguments
        Fragmentclass fragobj = new Fragmentclass();
        fragobj.setArguments(recipientsIntent );

并在Fragment onCreateView方法中:

public class Fragmentclass extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String mFileType = getArguments().getString(ParseConstants.KEY_FILE_TYPE);    

}
}