▼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 WC=LinearLayout.LayoutParams.WRAP_CONTENT;
private final static int REQUEST_TEXT=0;//テキストID
private TextView textView;//テキストビュー

//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);

//レイアウトの生成
LinearLayout layout=new LinearLayout(this);
layout.setBackgroundColor(Color.WHITE);
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

//ボタンの生成
Button button=new Button(this);
button.setText("自作アクティビティの呼び出し");
button.setOnClickListener(this);
button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
layout.addView(button);

//テキストビューの生成
textView=new TextView(this);
textView.setText("これはテストです。");
textView.setTextColor(Color.BLACK);
textView.setTextSize(16);
textView.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
layout.addView(textView);
}

//ボタンクリック時に呼ばれる
public void onClick(View v) {
//アプリ内のアクティビティを呼び出すインテントの生成
Intent intent=new Intent(this,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);
}
}
}

MyActivity.java
package net.npaka.myactivityex;
import android.app.Activity;
import android.content.Intent;
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 final static int WC=LinearLayout.LayoutParams.WRAP_CONTENT;
private final static int MP=LinearLayout.LayoutParams.MATCH_PARENT;
private EditText editText;//エディットテキスト

//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
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.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);

//OKボタンの生成
Button button=new Button(this);
button.setText("OK");
button.setOnClickListener(this);
button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC));
layout.addView(button);

//エディットテキストの生成
editText=new EditText(this);
editText.setText(text);
editText.setLayoutParams(new LinearLayout.LayoutParams(MP,WC));
layout.addView(editText);
}

//ボタンクリック時に呼ばれる
public void onClick(View v) {
//戻り値の指定
Intent intent =new Intent();
intent.putExtra("text",editText.getText().toString());
setResult(Activity.RESULT_OK,intent);

//アクティビティの終了
finish();
}
}

AndroidManifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.npaka.myactivityex"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="16" />

<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:label="@string/app_name"
android:name=".MyActivityEx" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".MyActivity"/>
</application>

</manifest>


−戻る−