2015-10-21 79 views
0

傳遞Parcelable我有兩個活動:無法通過意向

  • ListViewActivity
  • AddActivity

和一個對象類:

  • todoObj

我在ListViewActivity活動中有一個列表視圖,當我單擊添加按鈕時,這將啓動AddActivity。在用戶輸入標題時,在AddActivity中,選擇日期,時間和我希望AddActivity創建待辦事項對象的類別,並將其傳回給ListViewActivity。

對不起,我不能分享代碼本身,它始終給所有這個錯誤,所以我上傳github請檢查出來。

對不起。 非常感謝。

+0

「它總是給這個錯誤」 - 這錯誤? – Egor

+0

當我登錄時,我看不到任何數據傳遞給我的ListViewActivity,我什至不能看到我的ListViewActivity的onActivityResult日誌。我想知道如何獲取數據並將其傳遞給另一個活動並創建一個對象,將此對象添加到我的Arraylist並在ListView上顯示 – Recomer

回答

2

所有你必須修復ListViewActivity onActivityResult方法:

  1. 因爲你在AddActivity結果碼的設置ADD_REQUEST_CODE的 「的setResult(ListViewActivity.ADD_REQUEST_CODE,意圖);」,你應該使用「if(resultCode == ADD_REQUEST_CODE){「in ListViewActivity not RESULT_OK
  2. 您應該從onActivityResult接收意圖,而不是ListViewActivity的意圖。 getIntent()提供了ListViewActivity的意圖。因此,使用數據變量:

    onActivityResult(INT requestCode,INT 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