Передать объект TIME через связку - PullRequest
3 голосов
/ 25 декабря 2011

Как передать экземпляр (объект) TIME, используя Bundle ???

Может быть, простой вопрос, но мне нужен точный ответ ...

DATE date=new DATE();

Ответы [ 3 ]

13 голосов
/ 20 мая 2014

Даты являются сериализуемыми, поэтому вы можете использовать get/putSerializable:

MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(MyFragment.DATE_KEY, new Date());
fragment.setArguments(bundle);

In MyFragment:

public void onViewStateRestored(Bundle savedInstanceState) {
    super.onViewStateRestored(savedInstanceState);
    Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
    Date startTime = (Date) bundle.getSerializable(MyFragment.DATE_KEY);
    this.time = startTime;
}

public void onSaveInstanceState(Bundle bundle) {
    super.onSaveInstanceState(bundle);
    bundle.putSerializable(MyFragment.DATE_KEY, this.time);
}
8 голосов
/ 25 декабря 2011

Этот код является приблизительным, так как я пишу его из памяти.

Intent mIntent = new Intent(ActivityA.this, ActivityB.class);
mIntent.putLong(KEY, getTimeMilliseconds());
startactivity(mIntent);

Затем в onCreate ActivityB:

Bundle mBundle = getItent().getExtras();
Long time = mBundle.getLong(KEY);

Примечание:

putLong / getLong может применяться к нескольким типам String, int ...

Если вы хотите, чтобы он применялся к пользовательскому объекту, вы должны сделать этот объект реализующим Parcelable.

2 голосов
/ 25 декабря 2011

Передайте длинное значение, которое представляет вашу дату в Bundle, например long time = new Date (). GetTime ();

...