イニシャル ネーム ハワイアンジュエリー Y ネックレス イエローゴールドk10 ペンダント エメラルド アルファベット レディース チェーン 人気 10金 カラーズ ヒーリングストーン Poodle公式総合通販サイト

イニシャル ネーム ハワイアンジュエリー Y ネックレス イエローゴールドk10 ペンダント エメラルド アルファベット レディース チェーン 人気 10金 カラーズ ヒーリングストーン Poodle

7月 23, 2011   //   by UpDown-G   //   Hacks, アプリケーション  //  No Comments

本ブログでも以下の記事にて紹介していますが、Androidには、Intentという強力なAPIが用意されています。

Intentを使って画面を遷移する(明示的Intent)
Intentを使ってアプリを連携させる(暗黙的Intent)

Intentを用いることで、異なったActivity間でデータ(文字列や数値など)を受け渡すことが可能です。
今回はこのIntentを用いて、オブジェクトを受け渡す方法を解説します。

Intentでオブジェクトを受け渡し可能にするには、イニシャル ネーム ハワイアンジュエリー Y ネックレス イエローゴールドk10 ペンダント エメラルド アルファベット レディース チェーン 人気 10金 カラーズ ヒーリングストーン Poodleを超特価購入!

【正規品】限定 スイーツ付 8月誕生石 ペリドットペンダント ネックレス フラワー メリーチョコレート付 レディース アクセサリー お返し、イニシャル ネーム ハワイアンジュエリー T ネックレス ピンクゴールドk10 ペンダント アイオライト アルファベット レディース チェーン 人気 10金公式総合通販サイト、Cha Cha's House of Ill Repute Gallo、dbrie レディース トップのみ 水着・ビーチウェア Brandi Velvet Top dbrie Blue Crush
【正規品】長財布 栃木レザー フラップ ウォレット 長財布 L L-20187-BE ベージュ、トニーペロッティ 財布 コインケース 小銭入れ マネークリップ Tony Perotti イタリア製 レザー Ultimo Executive Front pocket Card Wallet ブラック公式総合通販サイト、スタッズ付きちょうどカヴァッリ メンズ穿孔レザー ベルト、トーマスワイルド THOMAS WYLDE パンツ レディース 10SLK203 ブラック 目玉商品17AW
【正規品】アレキサンダー ワン レディース ボディースーツ インナー・下着 Black Lace-Up Bodysuit、BURBERRY バーバリー マフラー3991191 TEAL公式総合通販サイト、メンズ レザージャケット [Hitz 海寧皮革レザー男性 羊皮 革 スーツメンズスーツ 男性スリムPitsea]、メンズ デニムジャケット [メンズコットン勾配緩いデニムジャケット]

【正規品】イニシャル ネーム ハワイアンジュエリー Y ネックレス イエローゴールドk10 ペンダント エメラルド アルファベット レディース チェーン 人気 10金公式総合通販サイト

ネックレス シルバーペンダント 天使の卵 感動・祝福 感動の星 天使1125CZ ホワイトゴールドk18 リング 1粒石 ピンクトルマリン 10月誕生石 ハート
ハーフエタニティの指輪 ダイアモンド 4月誕生石 10金イエローゴールド スウォッチSwatch Women's YLS1033 Irony Analog Display Swiss Quartz Grey Watch
並行輸入品 Wenger ウェンガー 腕時計 Wenger Women's 72629 Mountaineer Watch【送料無料】 オーガストシュタイナー メンズ ASA825YG ダイヤモンド自動ストラップ ドレス腕時計
ネックレス・ペンダント クラッシクハードウェア クラシック Hardware Steampunk Bat ネックレス ウイズ Jet フェイスted Beads ブラック Goth ジェームスジェニー 指輪 レディース用 JamesJenny Ladies Set Yellow Gold Plated 1.1ct RoundCZ Channel Ring Size 4
送料無料 ブリングジュエリー リング 指輪 レディース ファッション おしゃれ アクセサリー925 Sterling Silver Pink Oval Cubic Zirconia Ring Size-6 ネックレスWheat Chain Necklace - Silver Plated - Men’s - 6MM WIDE, 20 inch, Bling solid(US輸入品)

【正規品】【送料無料】K18WG 18金ホワイトゴールド ダイヤリング エタニティリング 指輪 計0.5ct 125401 7号人気/おすすめ/通販

【正規品】リング・指輪 Pt100 ハーフエタ二ティープリンセスリング 13号、シチズン CITIZEN アテッサ メンズ 腕時計 CB3010-57A 国内正規 宅配便 送料無料公式総合通販サイト、カシオ Casio Men's G1400d-1adr G-shock Aviation Black Resin Multi-function Wa、グッチ GUCCI 腕時計 クロノ ブラック YA101309
【正規品】メンズ腕時計 CASIO G-SHOCK RANGEMAN GW-9402KJ-2JR EARTHWATCH LIMITED EDITION MENS JAPAN IMPORT、レニーゼ レディースシューズ 靴 ブーツ アンクル ショートブーツ Reneeze LIZ-01 Womens Fashionable Knee High Boots with Buckles- LIGHT GREY 正規輸入品公式総合通販サイト、ブローフィッシュ レディース サンダル・ミュール シューズ・靴 Laslett Whiskey Dyecut、ヴィンス カムート レディース ワンピース ワンピース・ドレス Vince Camuto Simple Stripe Halter Dress Rich Black
【正規品】レディース ファッション おしゃれ 可愛い 水着Roxy Women's Crochet Sporty Tee 正規輸入品、ブレスレット ペア レディースジュエリー Sterling Silver Bezel Set Cubic Zirconia Tennis Bracelet-Silver 正規輸入品公式総合通販サイト、ネックレスLetter Love Cherry Blossom Shaped Swarovski Elements Crystal Rhodium Plated Necklace - Purple(US輸入品)、Michel's Vintage Beads Neckrace Rosary Clossヴィンテージビーズネックレス・ロザリオ・クロスペンダント

、少し工夫が必要です。
ポイントは 、java.io.Serializableインタフェースをimplementsすることで、受け渡すオブジェクト(クラス)をシリアライズする点です。
シリアライズについては、以下の記事も参考にしてみてください。

データを簡単に保存する方法(シリアライズ編)

今回は、英語、数学、理科、社会のテストの点数を格納したクラスのオブジェクトを渡し、受け側で情報を取り出して表示させるサンプルを例に解説します。

それでは続きをどうぞ

受け渡し対象のクラスの作成

まずは今回受け渡す対象となるオブジェクトを生成するためのクラスを作成します。
オブジェクトをIntentで受け渡しする際には、入出力ストリームにて入出力が可能となるように、オブジェクトをシリアライズ(直列化)によって連続的なバイト列にする必要があります。オブジェクトはメモリ上に連続して配置されているとは限らないからです。
よって、前述した通り、受け渡し対象となるオブジェクトのクラスは、java.io.Serializableインタフェースをimplementsしている必要があります。
java.io.Serializableインタフェースについては、データを簡単に保存する方法(シリアライズ編)で詳しく解説されてますので、ここでは詳しく解説しませんが、今回は以下のようなクラスを作成しました。

public class TestResults implements Serializable {
int english = 0;
int mathematics = 0;
int scientics = 0;
int society = 0;
enum subject{
ENGLISH,
MATHEMATICS,
SCIENTICS,
SOCIETY;
}
public TestResults(int eng, int math, int science, int social) {
english = eng;
mathematics = math;
scientics = science;
society = social;
}
public int getPoint(subject sub){
switch(sub){
case ENGLISH: return english;
case MATHEMATICS: return mathematics;
case SCIENTICS: return scientics;
case SOCIETY: return society;
default : return -1;
}
}
}

コンストラクタで引数に渡されてきたint型の整数を保持し、、getPoint()メソッドで保持した値を取得するシンプルなクラスです。
java.io.Serializableインタフェースをimplementsしている以外は特に特殊なところはありませんね。(ぶっちゃけここまでで解説はほとんど終了しています。。。

オブジェクトを受け渡す

それでは先ほど作成したクラスのインスタンス(オブジェクト)を生成し、Intentを用いて受け渡してみましょう。
まずは渡す側の処理です。TestResultsオブジェクト生成時に、引数に各テストの点数を順番に指定して、値をTestResultsクラス内のコンストラクタ内部で保持します。

public class ObjectIntentSample extends Activity {
(...中略...)
 Button saveBtn = (Button)findViewById(R.id.save);
 saveBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
(...中略...)
TestResults tr = new TestResults((int)engPnt,(int)mathPnt,(int)sciencePnt,(int)socialPnt);
Intent objIntent = new Intent(getApplicationContext(),RecieveActiviity.class);
objIntent.putExtra("test_result",tr);
startActivity(objIntent);
}
}

渡す側のActivityでは 、putExtra()メソッドを用いてIntentに生成したTestResultsクラスのオブジェクトを付加します。特に変わった様子はありません。

次は受け取る側の処理です。

TestResults tr = (TestResults)getIntent().getSerializableExtra("test_result");

Intentからシリアライズされたオブジェクトや値を取り出す場合は、 getSerializableExtra()メソッドを使用します。引数には、putExtra()の第1引数で指定したキーを指定します。

あとは受け取ったオブジェクトから値を取り出すだけです。

public class RecieveActiviity extends Activity {
(...中略...)
TestResults tr = (TestResults)getIntent().getSerializableExtra("test_result");
eng.setText(String.valueOf(tr.getPoint(subject.ENGLISH)));
math.setText(String.valueOf(tr.getPoint(subject.MATHEMATICS)));
science.setText(String.valueOf(tr.getPoint(subject.SCIENTICS)));
social.setText(String.valueOf(tr.getPoint(subject.SOCIETY)));
(...中略...)
}

今回のサンプルでは取り出したデータをテキストビューでシンプルに表示しています。

以上で、オブジェクトの受け渡しは無事完了です。簡単ですね。オチもありません。

【正規品】イニシャル ネーム ハワイアンジュエリー Y ネックレス イエローゴールドk10 ペンダント エメラルド アルファベット レディース チェーン 人気 10金 カラーズ ヒーリングストーン Poodle

Sponsored Link

Comments are closed.

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、、、HowTo本です

{yahoojp}yaho01-myp07-gui-3722