Intentでオブジェクトの受け渡し

2011/04/13
Intentで画面遷移する際、オブジェクトを受け渡したい場合どうするのか? Intent.putExtra() の引数型は「String」「double」「int」「float」「long」「byte」「CharSequence」「char」「Bundle」「Parcelable」「Serializable」「boolean」「short」 となってるので、それ以外のオブジェクトやカスタムクラスを、そのまま受け渡しできないようです。

Serializable を implements する

カスタムオブジェクトを受け渡す場合、事前に Serializable を implements しておく。 [java] import java.io.Serializable; import java.util.Date; public class Schedule implements Serializable { private static final long serialVersionUID = -7168471472978288786L; private Date dtstart; private String title; public Date getDtstart() { return dtstart; } public void setDtstart(Date value) { dtstart = value; } public String getTitle() { return title; } public void setTitle(String value) { title = value; } } [/java]

元画面でモデルデータを受け渡す

[java] private void pageDetail(Schedule schedule) { Intent intent = new Intent(CalendarActivity.this, ScheduleDetailActivity.class); intent.putExtra("schedule", schedule); startActivityForResult(intent, 1); } [/java]

移動先画面でモデルデータを受け取る

[java] public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.schedule_detail); Intent intent = getIntent(); Schedule schedule = (Schedule) intent.getSerializableExtra("schedule"); } [/java] 2011/06/08追記 こちらの方が正しいかも。 [java] public void onActivityResult(int requestCode, int resultCode,Intent data) { if( resultCode == RESULT_OK) { Schedule schedule = (Schedule) data.getSerializableExtra("schedule"); } } [/java]

参考ページ

Android 画面遷移での値の受け渡し
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel 7 リリース
v-html でHTML表示する
Laravel で Vue コンポーネントを使う
Laravel で Nuxt.js を使ってみる(Docker環境)
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Dockerで不要なコンテナ・イメージを削除
Mac で Laradock の構築
yarn インストール&プロジェクト作成
Laravel 6.x 構築(Homestead編)
Composer インストール
nvm インストール
npm install が Mac でエラー
HTMLタグでカーソルが同時処理(ミラーリング)されてしまう
DI(依存性注入)
[Ubuntu]Let's Encryptで無料の証明書を利用する
[Apache]Apache2.4のアクセス制限が変更
[Ubuntu]rootのログインとsudo権限追加
タミヤ マイコンロボット工作セットをMacに接続してみた
pgAdimn4 でブラウザで開けなくなる
Java8 を HomebrewとjEnvで構築
Android Studio環境構築 2019
ロケールの再構築
vagrant グループに Apacheを追加