Передать объект из активности во фрагмент

Я новичок в Android. Это мое первое приложение. Я пробовал искать в Интернете, но все пытались передать простые данные из активности во фрагмент. Я хочу передать весь объект из активности во фрагмент. Я знаю, что есть одно решение: просто использовать сериализацию и десериализацию и поместить данные в Bundle.

Вместо того, чтобы пытаться сериализовать и десериализовать, я создал нестатический метод в своей деятельности и попытался получить активность () во фрагменте, а затем вызвал этот метод, но он возвращает мне значение null. Может ли кто-нибудь помочь мне с тем, что я делаю неправильно.

Ниже мой код: -

BaseDefaultActivity — это мой собственный настраиваемый класс, который расширяет AppCompatActivity.

public class EventDetailActivity extends BaseDefaultActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setBaseContentView(R.layout.activity_event_detail);
        ButterKnife.bind(this);
        initialiseDataFromIntend();
        DummyObject obj=new DummyObj();
        setDataObject(obj);

        // Get the ViewPager and set it's PagerAdapter so that it can display items
        viewPager.setAdapter(new EventDetailFragementAdapter(getSupportFragmentManager(), EventDetailActivity.this));

        // Give the TabLayout the ViewPager
        tabLayout.setupWithViewPager(viewPager);
    }

}


public class BaseDefaultActivity extends AppCompatActivity implements BaseActivity {
    private Object dataObj;
    public void setDataObject(Object obj) {
            this.dataObj = obj;
        }

        public Object getDataObj() {
            return this.dataObj;
        }
    }



public class EventDetailFragementAdapter extends FragmentPagerAdapter {
    final int PAGE_COUNT = 3;
    private String tabTitles[] = new String[]{"Tab1", "Tab2", "Tab3"};
    private Context context;

    public EventDetailFragementAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabTitles[position];
    }

    @Override
    public Fragment getItem(int position) {
        Fragment fragment = null;
        switch (position) {
            case 0:
                fragment = new EventDetailFragement();
                break;

            case 1:
                fragment = new EventBasicInfoFragement();
                break;

            default:
                fragment = new EventDetailFragement();
                break;
        }
        return fragment;
    }


    @Override
    public int getCount() {
        return PAGE_COUNT;
    }



public class EventDetailFragement extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.event_detail_fragement, container, false);
        TextView textView = (TextView) view;
        textView.setText("AAAAAAA #" + (SearchEventResponseObject) ((BaseDefaultActivity) getActivity()).getDataObj());
        return view;
    }
}

person NameNotFoundException    schedule 13.03.2016    source источник
comment
Я думаю, вы должны использовать статическую переменную ojbect для легкой передачи данных obj между действиями и фрагментами. после передачи вам нужно установить нуль, чтобы очистить память.   -  person GiapLee    schedule 13.03.2016
comment
Stacktrace, пожалуйста?   -  person Joe Maher    schedule 13.03.2016
comment
Почему бы вам не передать свой объект в конструктор фрагментов?   -  person Ahsan Kamal    schedule 13.03.2016
comment
@AKSiddique Конструктор моего фрагмента вызывается в адаптере, поэтому в любом случае я должен сначала передать свой объект из Activity в адаптер.   -  person NameNotFoundException    schedule 13.03.2016
comment
@JoeMaher, спасибо за опечатку, я отредактировал свой вопрос сейчас. Я не получаю NullPointerException, я получаю объект как null.   -  person NameNotFoundException    schedule 13.03.2016
comment
@NamingException да, либо вы передаете свой объект в адаптер или, вы также можете использовать интерфейс для этого задания.   -  person Ahsan Kamal    schedule 13.03.2016
comment
@AKSiddique Как я могу передать свой объект адаптеру. Адаптер инициализируется только один раз при активности onCreate(). В этом действии для itemSelect я должен вызывать этот фрагмент, поэтому я хочу каждый раз менять его объект, поэтому невозможно передать объект адаптеру.   -  person NameNotFoundException    schedule 13.03.2016
comment
@NamingException, тогда вы используете интерфейс для этой работы.   -  person Ahsan Kamal    schedule 13.03.2016
comment
@NamingException взгляните на эту [ссылку] (stackoverflow.com/a/35238587/2183890), вы поймете, как чтобы использовать эту логику для передачи данных между активностью и фрагментами.   -  person Ahsan Kamal    schedule 13.03.2016