第 10 章サンプルコード集
この章ではプログラミングの参考となるサンプルコードを掲載しています。 コード記載のない部分についてはプロジェクトのデフォルトです。アクティビティ間のデータ受け渡しサンプル
アプリケーション名: ActivityResultTest プロジェクト名: ActivityResultTest パッケージ名: com.example.activitytest 最小必須 SDK : API 10: Android 2.3.3 ターゲット SDK : API 18: Android 4.3 他デフォルトアプリケーション仕様
メインアクティビティのエディットテキストにセットしたテキストをサブアクティビティに受け渡し、サブアクティ ビティのエディットテキストに表示。 サブアクティビティで編集後、そのテキストをメインアクティビティに返し、メインアクティビティのエディット テキストに表示。 スクリーンショットソースコード
MainActivity.java
package com.example.activityresulttest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;public class MainActivity extends Activity { // リクエストコードの定数
private static final int SUB_ACTIVITY = 1; // 共通変数定義
private EditText inputText; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // エディットテキスト初期化
inputText = (EditText) findViewById(R.id.editText1); // ボタン初期化とクリックリスナーの実装
Button btn = (Button) findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ // サブアクティビティ起動インテント生成
Intent intent = new Intent(getApplicationContext(), SubActivity.class); // インテントにパラメーターをセット intent.putExtra("MAIN_INPUT_TEXT", inputText.getText() .toString()); // 戻り結果を受け取るアクティビティの呼出し startActivityForResult(intent, SUB_ACTIVITY); } }); } // アクティビティの戻り値を受け取るメソッド @Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent); // リクエストコードを照合して処理するメソッド
if (requestCode == SUB_ACTIVITY) {
// リザルトコードを照合して処理するメソッド if (resultCode == RESULT_OK) {
// 戻り値にセットされたインテントのパラメータを受け取る Bundle extras = intent.getExtras();
// パラメータを受け取っていたらテキストエディットに表示、無かったら空白を表示 if (extras != null) { inputText.setText(extras.getString("SUB_TEXT")); } else { inputText.setText(""); } } } } }
SubActivity.java
package com.example.activityresulttest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;public class SubActivity extends Activity { // 共通変数定義
private EditText editText; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub); // エディットテキスト初期化
editText = (EditText) findViewById(R.id.sub_editText1); // 受け渡されたインテントのパラメータを取得
Intent intent = getIntent(); Bundle extras = intent.getExtras();
// パラメータがある場合にはエディットテキストに表示、無かったら空白を表示 if (extras != null) { editText.setText(extras.getString("MAIN_INPUT_TEXT")); } else { editText.setText(""); } // キャンセルボタンの初期化とクリックリスナーの実装 Button btn_cancel = (Button) findViewById(R.id.btn_cancel); btn_cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_CANCELED); finish();
} });
// リターンボタンの初期化とクリックリスナーの実装 Button btn_return = (Button) findViewById(R.id.btn_return); btn_return.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// インテントを生成し、パラメーターにエディットテキストの内容をセット Intent intent = new Intent();
intent.putExtra("SUB_TEXT", editText.getText().toString()); // リザルトコードに OK をセットして戻り値をセットしてアクティビティを終了 setResult(RESULT_OK, intent); finish(); } }); } }