Android 基本型 呼び出しと結果返却

呼び出された側のセット kanrActivity環境のセット

package com.rakusuke.apppickup;

//各種インポート
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.SQLException;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
// Activityの定義
public class kanrActivity extends Activity  implements OnClickListener{
	private Button mbtnend, mbtnok;
	private String mid = "";
	private String mpass = "";
	private String mmode = "";
//初回実行
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
		setContentView(R.layout.kanr);

		mbtnend = (Button)findViewById(R.id.buttonkanrend2);
		mbtnok = (Button)findViewById(R.id.buttonkanrok);
//ボタンをリスナーに登録
		mbtnend.setOnClickListener(this);
		mbtnok.setOnClickListener(this);

		Intent intent = getIntent();
// インテントに保存されたデータを取得
		String intent_id = intent.getStringExtra("intent_id");
		String intent_pass= intent.getStringExtra("intent_pass");
		String intent_mode= intent.getStringExtra("intent_mode");
		mid = intent_id;
		mpass = intent_pass;
		mmode = intent_mode;
//画面にセット
		EditText edittextid = (EditText)  findViewById(R.id.editkanrid);
		if (mmode.equals("MAIN")){
			edittextid.setText("");
		}else{
			edittextid.setText(mid);
		}

		EditText edittextpass1 = (EditText)  findViewById(R.id.editkanrpwd1);
		edittextpass1.setText("");
		EditText edittextpass2 = (EditText)  findViewById(R.id.editkanrpwd2);
		edittextpass2.setText("");

	}
//クリック実行
	public void onClick(View view) {
		if (view.getId() == R.id.buttonkanrend2) {
			if (mmode.equals("MAIN")){
				Intent data = new Intent();
// インテントに値をセット
				data.putExtra("intent_sel", "no");
				data.putExtra("intent_id", "");
				data.putExtra("intent_pass", "");
//結果をセット
				setResult(RESULT_OK, data);
			}
			finish();
//登録
		}else if (view.getId() == R.id.buttonkanrok) {
			String strmsg = "";
			String strsql = "";
			EditText edittextid = (EditText)  findViewById(R.id.editkanrid);
			String strid = (String) edittextid.getText().toString();
		EditText edittextpass1 = (EditText)  findViewById(R.id.editkanrpwd1 );
			String strpass1= (String) edittextpass1.getText().toString();
		EditText edittextpass2 = (EditText)  findViewById(R.id.editkanrpwd2 );
			String strpass2= (String) edittextpass2.getText().toString();

			if (strid.equals("")){
				strmsg = "ID不良です";
			}else if (strpass1.equals("")){
				strmsg = "パスワード1不良です";
			}else if (strpass2.equals("")){
				strmsg = "パスワード2不良です";
			}else if (!strpass1.equals(strpass2)){
				strmsg = "パスワード不一致です";
			}else {
//登録開始
//PickOpenHelperをインスタンス化
			PickOpenHelper hlpr = new PickOpenHelper(getApplicationContext());
//DBをIOモードで
				MainActivity.PICKDB= hlpr.getWritableDatabase();
//トランザクションの発行
				MainActivity.PICKDB.beginTransaction();
//SQL作成
				strsql = "delete from KANRTA2 "
						+ " where cd = 1"
						+ ";";
				try {
//SQLの実行
					MainActivity.PICKDB.execSQL(strsql);
				} catch (SQLException e){
					strmsg = e.getMessage();
				} catch(Exception e){
					strmsg = e.getMessage();
				}
				if (strmsg.equals("")){
					strsql = "insert into KANRTA2"
							+"(cd ,id,pass)"
							+ " values "
							+ "(1 "
							+ "," + "'" + strid + "'"
							+ "," + "'" + strpass1 + "'"
							+ ");";
					try {
//SQLの実行
						MainActivity.PICKDB.execSQL(strsql);
					} catch (SQLException e){
						strmsg = e.getMessage();
					} catch(Exception e){
						strmsg = e.getMessage();
					}
				}
//トランザクションの発行
				MainActivity.PICKDB.setTransactionSuccessful();
				MainActivity.PICKDB.endTransaction();
				MainActivity.PICKDB.close();
			}
			if (strmsg.equals("")){
				if (mmode.equals("MAIN")){
					Intent data = new Intent();
// インテントに値をセット data.putExtra(
					data.putExtra("intent_sel", "yes");
					data.putExtra("intent_id", strid);
					data.putExtra("intent_pass", strpass1);
//呼び出し元に結果セット RESULT_OK
					setResult(RESULT_OK, data);
					finish();

				}else {
					finish();
				}

			}else{
	final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
// タイトルを設定
				alertDialogBuilder.setTitle("ピッキングモバイル");
// メッセージを設定
				alertDialogBuilder.setMessage(strmsg);
// アイコンを設定
alertDialogBuilder.setIcon( R.drawable.ic_launcher);
// Positiveボタンとリスナを設定
	alertDialogBuilder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {

					}
				});
// ダイアログを表示
				alertDialogBuilder.create();
				alertDialogBuilder.show();
			}

//IF文の終わり
		}


	}

}

呼び出し側のセット MainActivity startActivityForResult


private static final int KANR_ACTIVITY = 12;


Intent intent = new Intent(MainActivity.this,kanrActivity.class);
// インテントに値をセット
intent.putExtra("intent_id", strid);
intent.putExtra("intent_pass", strpass);
intent.putExtra("intent_mode", "MAIN");
// サブ画面の呼び出し
startActivityForResult(intent, KANR_ACTIVITY);

呼び出し側への戻り MainActivity onActivityResult

/* ----------------------
 * アクティビティの戻り
 * ----------------------
 */
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	if(requestCode == KANR_ACTIVITY) {
		if(resultCode == RESULT_OK) {
		String intent_sel= data.getCharSequenceExtra("intent_sel").toString();
		String intent_id = data.getCharSequenceExtra("intent_id").toString();
		String intent_pass = data.getCharSequenceExtra("intent_pass").toString();
		if (intent_sel.equals("no")) {

		}else {
		EditText edittextid = (EditText)  findViewById(R.id.editmainid );
		edittextid.setText( intent_id);
		EditText edittextpass = (EditText)  findViewById(R.id.editmainpwd );
		edittextpass.setText(intent_pass);
			}
		}
	}