スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android Intentを利用した別Activityでの結果表示

・Intentは、ActivityやServiceの連携を簡単に実現する仕組みです。
 今回は別のActivityに、Intentを使用し結果を表示します。

処理内容
・同パッケージに、結果を表示するアクティビティ(ResultActivity)を作成。
・ResultActivityにて、Bundleから付加情報を抽出し、画面へ表示する。
・呼び出し元のActivityにて、付加情報を設定しResultActivityを呼び出す。

■Intentを呼び出すクラス

●Activityクラス その1
                             
   
  @Override  
  public void onCreate(Bundle savedInstanceState) {  
   
  ・・・ 省略 ・・・  
   
  Button nextBtn = (Button) findViewById(R.id.btn_nextshow); // ボタンオブジェクトの抽出 ①
  nextBtn.setOnClickListener(nextClicklistener); // onClickリスナーの登録  
   
  }  
   
   
  // 別画面起動  
  OnClickListener nextClicklistener = new OnClickListener() {  
  @Override  
  public void onClick(View v) {  
  // 入力した身長、体重からBMIを計算  
  EditText tHeight = (EditText) findViewById(R.id.text_height); ②  
  EditText tWeight = (EditText) findViewById(R.id.text_weight);  
  int heightCnt = Integer.parseInt(tHeight.getText().toString());  
  int weightCnt = Integer.parseInt(tWeight.getText().toString());  
   
  // 第一引数に元画面のActivity、第二引数は次画面のActivityを指定  
  Intent it = new Intent(BMICalculation.this, ResultActivity.class); ③  
  // 次画面への付加情報 Map形式  
  it.putExtra("HEIGHT_CNT", heightCnt); ④  
  it.putExtra("WEIGHT_CNT", weightCnt);  
   
  // 第二引数には親Activityへ戻ってきたときのリクエストコード  
  startActivityForResult(it, 0); ⑤  
  }  
  };  
   
                             
①ボタンに大使って、結果を表示するアクティビティ(ResultActivity)を呼び出すonClickListenerを登録する。
②画面で入力された身長、体重を取得。
③明示的Intentを生成。第一引数は呼び出し元のActivity、第二引数は呼び出すActivityを設定する。
④putExtraメソッドで付加情報を追記。Map形式で記述する。
⑤startActivityForResultメソッドで、別Activityを呼び出す。
  第一引数は呼び出すIntent、第二引数は再び親アクティビティに戻ってきたときに区別するためのコード。



■結果を表示するアクティビティ
●ResultActivityクラス
                       
package android.bmi.calcu;  
   
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;  
   
public class ResultActivity extends Activity{  
  private int heightCnt = 0;  
  private int weightCnt = 0;  
  private int bmiCnt = 0;  
   
   
  @Override  
  public void onCreate(Bundle bndl){  
  super.onCreate(bndl);  
  setContentView(R.layout.result); ①
   
  //結果を表示するテキストオブジェクト  
  TextView bmiVal = (TextView)findViewById(R.id.lbl_bmival); ②
  TextView status = (TextView)findViewById(R.id.lbl_status);  
   
  Bundle extras = getIntent().getExtras(); ③
  if(extras != null){  
  //インテントから付加情報を取得  
  heightCnt = extras.getInt("HEIGHT_CNT"); ④
  weightCnt = extras.getInt("WEIGHT_CNT");  
  bmiCnt = 10000 * weightCnt / heightCnt / heightCnt;  
  bmiVal.setText(bmiCnt+"");  
   
   
  if(bmiCnt > 24) status.setText(R.string.lbl_fat); ⑤
  else if(bmiCnt < 18) status.setText(R.string.lbl_slim);  
  else status.setText(R.string.lbl_stand);  
  }  
  }  
}  
                       
①結果を表示する画面レイアウト:result.xmlをsetContentViewで設定する。
②値を表示するTextViewオブジェクト抽出。
③付加情報を取得するためにBundleオブジェクトを取得。
④getInt()メソッドで付加情報をIntegerで抽出。BMIの結果を画面へ出力する。
⑤BMIの値を元に、対応する文字列を画面へ出力。
スポンサーサイト

テーマ : android
ジャンル : コンピュータ

コメントの投稿

非公開コメント

おすすめアプリ
カテゴリ
最新記事
リンク
アクセスカウンター
アクセス解析
imobile
i-mobile
i-mobile
i-mobile
i-mobile
i-mobile
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Amazon
Androidお勧め参考書
EC studio
商品
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。