Без отправки календаря obj он будет работать нормально .. Затем Как передать объект Calendar из одной активности в другую?

мы можем передать String as

Intent returnIntent = new Intent(); 
returnIntent.putExtra("SelectedRadio", selectedRadio); 

Но если я хочу передать объект Calendar, то как передать его из одного действия другому?

Заранее спасибо.

Это моя первая работа:

public class MyCalendar extends Activity {
public Calendar myCal;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_my_calendar);
    goCal= (ImageButton)findViewById(R.id.imageButton1);
myCal = Calendar.getInstance(); 
goCal.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {



            Intent i = new Intent(MyCalendar.this, MainActivity.class);
            i.putExtra("calendar", myCal);
startActivity(i);

    });     
}

}

Это моя вторая активность:

public class MainActivity extends Activity {

Intent myIntent;
Calendar today = (Calendar) myIntent.getExtras().getSerializable("calendar");
...
}

В чем моя ошибка. Почему мое приложение закрывается, когда я нажимаю кнопку goCal. PLS помочь мне .. Я новый ..

мой логарифм:

    01-09 18:55:50.338: W/dalvikvm(4252): threadid=1: thread exiting with uncaught exception (group=0xb5f41288)
01-09 18:55:50.338: E/AndroidRuntime(4252): FATAL EXCEPTION: main
01-09 18:55:50.338: E/AndroidRuntime(4252): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mycalendar/com.example.mycalendar.MainActivity}: java.lang.NullPointerException
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.os.Looper.loop(Looper.java:137)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread.main(ActivityThread.java:4745)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at java.lang.reflect.Method.invokeNative(Native Method)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at java.lang.reflect.Method.invoke(Method.java:511)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at dalvik.system.NativeStart.main(Native Method)
01-09 18:55:50.338: E/AndroidRuntime(4252): Caused by: java.lang.NullPointerException
01-09 18:55:50.338: E/AndroidRuntime(4252):     at com.example.mycalendar.MainActivity.(MainActivity.java:44)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at java.lang.Class.newInstanceImpl(Native Method)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at java.lang.Class.newInstance(Class.java:1319)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
01-09 18:55:50.338: E/AndroidRuntime(4252):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
01-09 18:55:50.338: E/AndroidRuntime(4252):     ... 11 more     

Без отправки календаря obj он будет работать нормально .. Затем Как передать объект Calendar из одной активности в другую?

0
nl ja de
Без отправки календаря obj он работал нормально. но мне нужно отправить объект Calendar.
добавлено автор bCliks, источник
вы можете передать параметры конструктору второго класса активности. Я не уверен, что это решения. Можешь попробовать.
добавлено автор Raghunandan, источник
Хм, Приятно это знать. :)
добавлено автор Sahil Mahajan Mj, источник
Parecelable Класс кажется лучший вариант для меня. Взгляните на эти сообщения, передать объекты в следующий Активность - Отправка объектов из одной активности в другую .
добавлено автор Sahil Mahajan Mj, источник
Класс календаря не распространяется на Parecelable, но расширяет Serializable
добавлено автор NickL, источник
Не следует передавать аргументы конструктору класса активности, так как вы фактически не создаете активность. Вы создаете намерение с данными, а Android создает activtiy.
добавлено автор NickL, источник

2 ответы

мы знаем, что Calander реализует интерфейс Serializable, поэтому вы можете отправить его в качестве дополнительного в намерении.

Intent i=new Intent(context,Home.class);
                Calendar c=Calendar.getInstance();
                i.putExtra("calobject", c);
                startActivity(i);

и вы можете получить его с помощью этого кода

 Calendar cal=(Calendar) getIntent().getSerializableExtra("calobject");

Вот скриншот отлаживаемого кода, который гладко проходит без каких-либо исключений. введите описание изображения здесь Я надеюсь, что это поможет вам

4
добавлено
Без отправки календаря obj он будет работать нормально. но мне нужно отправить объект Calendar.
добавлено автор bCliks, источник
PLS проверить мой обновленный код ..
добавлено автор bCliks, источник
Я опубликовал фрагмент кода с отлаженным кодом, пожалуйста, проверьте, что @bala
добавлено автор Pragnani, источник
Не нужно «сериализовывать» объект, поскольку он реализует интерфейс Serializable, Android/Java делает это сам по себе.
добавлено автор NickL, источник
Без отправки календаря obj он будет работать нормально. но мне нужно отправить объект Calendar.
добавлено автор bCliks, источник
да .. это .. line 44: Календарь сегодня = (Календарь) getIntent (). getExtras (). getSerializable («calendar»); это означает? ват я могу сделать ..
добавлено автор bCliks, источник
как это..?? Календарь сегодня = (Календарь) getIntent (). getExtras (). getSerializable ("calendar"); тот же результат ..
добавлено автор bCliks, источник
PLS проверить мой код обновления .. Я сделал, как ур ответить, но мое приложение закрыто, когда я нажму кнопку goCal.
добавлено автор bCliks, источник
Используйте getIntent() вместо вашего (не инициализированного) объекта myIntent
добавлено автор NickL, источник
01-09 18: 55: 50.338: E/AndroidRuntime (4252): at com.example.mycalendar.MainActivity. (MainActivity.java & zwnj;: 44). В этой строке указывается, что там есть исключение NullPointerException в строке 44 в вашем MainActivity.java. При использовании getIntent() возникает одно и то же исключение? Проверьте, соответствует ли это строке 44.
добавлено автор NickL, источник
попробуйте getIntent (). getSerializableExtra ("calendar"); Может быть, потому, что вы используете putExtra() вместо добавления Bundle к намерению (что будет возвращено getExtras ()).
добавлено автор NickL, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)