简体   繁体   English

将可分割对象从片段传递到活动

[英]Pass an Parcelable Object from an Fragment to an activity

I have a fragment MyFragment 我有一个片段MyFragment

public class MyFragment extends Fragment {
    //Some code here like to constructor

    //Trying to pass an object to another Activity
    Intent i = new Intent(getActivity(), NextActivity.class);
    startActivity(i);
    i.putExtra("test",  parcableObject);
    getActivity().finish();
}

And I have an activity NextActivty 我有一个活动NextActivty

public class NextActivity extends AppCompatActivity {
    //Some code here like to constructor
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.next_activity);

        Intent intent = getIntent();
        mBoard =  intent.getParcelableExtra("test");
        Log.d(TAG, "onCreate: " + mBoard);
}

Here is my Board class 这是我的Board

public class Board implements Parcelable {
    //Implements all the Parcelable methods.
    protected Board(Parcel in) { 
        //Auto-generated code here
    }
    public static final Creator<Board> CREATOR = new Creator<Board>() {
        //Auto-generated code here
    }
    @Override
    public int describeContents() {
        //Auto-generated code here
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        //Auto-generated code here
    }
}

My mBoard is always null . 我的mBoard始终为null

Is there something I am not doing right here ? 我在这里有没有做的事情吗?

You put your extra in wrong order. 你把多余的东西放错了顺序。 Put it before you start your activity. 开始活动前先放好它。

public class MyFragment extends Fragment {
    //Some code here like to constructor

    //Trying to pass an object to another Activity
    Intent i = new Intent(getActivity(), NextActivity.class);
    i.putExtra("test",  parcableObject);
    startActivity(i);
    getActivity().finish();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM