2016-11-25 8 views
0

への意図に渡さ取得することができないJSONを私は(簡単に)コードの下に使用しています別のアクティビティ

ユーティリティ のpublic static final String型のKEY =「MY_KEY」と名付けられ、グローバルのクラスでは、

//Pojo Class  
ViewPojo mPojo; 

//ActivityDemo  
Intent intent = new Intent(this, MyActivity.class);  
intent.putExtra(Utilities.KEY, new Gson().toJson(mPojo)); 

//MyActivity  
pojoJson = getIntent().getStringExtra(Utilities.KEY);  
mPojo = new Gson().fromJson(pojoJson, ViewPojo.class); 

nullが返されていますが、これはどうやって起こっているのかわかりません。
バンドルの場合も同様です。

何か助けていただければ幸いです。前もって感謝します。

+0

JSONを使用すると、シリアライザを使用してPOJOオブジェクトを渡すことができます –

答えて

0

stringExtraをインテントから取得する代わりに、インテントから余分なものを取得してフォームに追加する必要があります。

//MyActivity 
Bundle extras = this.getIntent().getExtras(); 
pojoJson = extras.getString(Utilities.KEY);  
mPojo = new Gson().fromJson(pojoJson, ViewPojo.class); 

はまた

+0

私はIntentからBundleを取得して検索したBundleから文字列を取得していますが、nullを返します。しかし、 "MY_KEY"という文字列を使用して解析されたjsonを正常に動作させると、静的final String = "MY_KEY"や静的String = "MY_KEY"のようなString定数を使用していると動作しません。 –

0

NULL値の戻り意図を指定してください直接詳細については、https://developer.android.com/reference/android/os/Parcelable.htmlを参照してください、JSONにそれを解析するのではなく、意図を通じてオブジェクトを送信するためにParcelable実装を使用することができます。

ように)束

バンドルエキストラ= intent.getExtrasを(使用。 mPojo = new Gson()。fromJson(extras.getString(Utilities.KEY)、ViewPojo.class);

+0

この場合の違いはアイデアに渡されたバンドルから解析されたjsonを得るのと同じです。 –

関連する問題