MainActivityでEditTextに値を入力し次へをクリックする。
SubActivityを開き、MainActivityで入力した値をTextViewに表示する。
別のアクティビティを開くにはインテント(Intent)クラスを使用します。
Intentクラスのコンストラクタの第1引数に現画面アクティビティのインスタンス、第2引数に呼び出すアクティビティのクラスを指定して
Intentインスタンスを作成します。
Intent(Context packageContext, Class cls)
IntentインスタンスのputExtra()メソッドを使って、アクティビティに渡したい値を指定します。
値はMapで保持されているので、キーと値のペアで設定します。
public Intent putExtra (String name, String value)
ActivityインスタンスのstartActivity()メソッドを使ってアクティビティを起動します。
public void startActivity (Intent intent)
開いたアクティビティでは
ActivityインスタンスのgetIntent()メソッドでIntentインスタンスを取得します。
public Intent getIntent ()
IntentインスタンスのgetExtras()メソッドで渡された値のMapを取得します。
public Bundle getExtras ()
MainActivity.java
package my.study.android;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonNext = (Button)findViewById(R.id.buttonNext);
buttonNext.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
buttonNext_OnClickListener(v);
}});
}
/*
* 次へボタンクリック処理
*/
public void buttonNext_OnClickListener(View v) {
//SubActivityを起動します。
EditText textInput = (EditText)findViewById(R.id.textInput);
Intent intent = new Intent(this,SubActivity.class);
intent.putExtra("INPUT_STRING", textInput.getText().toString());
startActivity(intent);
}
}
SubActivity.java
package my.study.android;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class SubActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
TextView labelInput = (TextView)findViewById(R.id.labelInput);
//インテントより渡された値を取得します。
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null){
labelInput.setText(extras.getString("INPUT_STRING"));
}else{
labelInput.setText("extra is null");
}
}
}
MainActivityのレイアウト(res/layout/main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/textInput">
</EditText>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonNext"
android:text="次へ">
</Button>
</LinearLayout>
SubActivityのレイアウト(res/layout/sub.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:
layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/labelInput"
android:text='"入力した値:"'>
</TextView>
</LinearLayout>
0 件のコメント:
コメントを投稿