2015-10-21 4 views
0

У меня есть два вида деятельности:не может пройти через Parcelable Intent

  • ListViewActivity
  • AddActivity

и один объект класса:

  • todoObj

У меня есть вид списка в моей активности ListViewActivity, и когда я нажимаю кнопку добавления, это инициирует AddActivity. В AddActivity, когда пользователь вводит Title, выберите дату, время и категорию, которую я хочу AddActivity, чтобы создать объект todo и передать это обратно в ListViewActivity.

Извините, что я не мог поделиться этим кодом, он всегда дает эту ошибку все время, поэтому я загрузил github, пожалуйста, проверьте это.

Извините. Большое спасибо.

+0

"всегда дает эту ошибку" - которая ошибка? – Egor

+0

Когда я регистрирую его, я не вижу никаких данных, переданных в ListViewActivity, я даже не вижу Log в моем onActivityResult ListViewActivity. Я хочу знать, как я могу получить данные и передать их другому действию, и ящик объекта, добавить этот объект в мой Arraylist и показать его в ListView. – Recomer

ответ

2

Все, что вы должны исправить onActivityResult метод в ListViewActivity:

  1. Из-за вас настройки результирующего кода ADD_REQUEST_CODE в AddActivity "setResult (ListViewActivity.ADD_REQUEST_CODE, намерение);", вы должны использовать "if (resultCode == ADD_REQUEST_CODE) { "в ListViewActivity не RESULT_OK.
  2. Вы должны получить намерение от onActivityResult, а не намерения ListViewActivity. getIntent() дает цель ListViewActivity. Поэтому использовать переменные данные:

    onActivityResult (INT requestCode, внутр ResultCode, Намерение данные)

Окончательного код:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == ADD_REQUEST_CODE) { 
     if (resultCode == ADD_REQUEST_CODE) { 
      Log.i("ListViewActivity", "Returned onActivityResult"); 
      TodoObj todoObj = (TodoObj) data.getParcelableExtra("EXTRA_TODO"); 
      Toast.makeText(ListViewActivity.this, "" + todoObj.getmYear(), 
        Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+1

Большое спасибо за ваш ответ, я отредактировал его, и теперь он работает! – Recomer

+0

... и я настоятельно рекомендую вам использовать библиотеку [John Ericksen] (http://stackoverflow.com/users/654187/john-ericksen), чтобы сделать приемлемый объект: [github.com/johncarl81/parceler] (http://github.com/johncarl81/parceler). – farukcankaya

+0

Я собираюсь проверить его как можно скорее! :) – Recomer