▼Androidメモ▼
アクティビティの連携
アクティビティの連携を行うプログラムを作成する。
![]()
ソースコード
MyActivityEx.java package net.npaka.myactivityex; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; //自作アクティビティの呼び出し public class MyActivityEx extends Activity implements View.OnClickListener { private final static int REQUEST_TEXT=0;//テキストID private TextView textView;//テキストビュー private Button btnCall; //呼び出しボタン //初期化 @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE); //レイアウトの生成 LinearLayout layout=new LinearLayout(this); layout.setBackgroundColor(Color.rgb(255,255,255)); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //呼び出しボタンの生成 btnCall=new Button(this); btnCall.setText("MyActivityの呼び出し"); btnCall.setOnClickListener(this); setLLParams(btnCall); layout.addView(btnCall); //テキストビューの生成 textView=new TextView(this); textView.setText("This is TEST!"); textView.setTextColor(Color.rgb(0,0,0)); setLLParams(textView); layout.addView(textView); } //ボタンクリックイベントの処理 public void onClick(View v) { if (v==btnCall) { //明示的なインテントの生成 Intent intent=new Intent(this, net.npaka.myactivityex.MyActivity.class); //インテントへのパラメータ指定 intent.putExtra("text",textView.getText().toString()); //アクティビティの呼び出し startActivityForResult(intent,REQUEST_TEXT); } } //アクティビティ呼び出し結果の取得 @Override protected void onActivityResult(int requestCode, int resultCode,Intent intent) { if (requestCode==REQUEST_TEXT && resultCode==RESULT_OK) { //インテントからのパラメータ取得 String text=""; Bundle extras=intent.getExtras(); if (extras!=null) text=extras.getString("text"); //テキストビューへの指定 textView.setText(text); } } //ライナーレイアウトのパラメータ指定 private static void setLLParams(View view) { view.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); } }
MyActivity.java package net.npaka.myactivityex; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; //自作アクティビティ public class MyActivity extends Activity implements View.OnClickListener { private EditText editText;//エディットテキスト private Button btnOK; //OKボタン //初期化 @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE); //キャンセルの戻り値の指定 setResult(Activity.RESULT_CANCELED); //インテントからのパラメータ取得 String text=""; Bundle extras=getIntent().getExtras(); if (extras!=null) text=extras.getString("text"); //レイアウトの生成 LinearLayout layout=new LinearLayout(this); layout.setBackgroundColor(Color.rgb(255,255,255)); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); //OKボタンの生成 btnOK=new Button(this); btnOK.setText("OK"); btnOK.setOnClickListener(this); setLLParams(btnOK); layout.addView(btnOK); //エディットテキストの生成 editText=new EditText(this); editText.setText(text); setLLParams(editText); layout.addView(editText); } //ボタンクリックイベントの処理 public void onClick(View v) { if (v==btnOK) { //OKの戻り値の指定 Intent intent =new Intent(); intent.putExtra("text",editText.getText().toString()); setResult(Activity.RESULT_OK,intent); //アクティビティの終了 finish(); } } //ライナーレイアウトのパラメータ指定 private static void setLLParams(View view) { view.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); } }
AndroidManifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.npaka.myactivityex" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyActivityEx" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="MyActivity"> </activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest>
−戻る−