画面遷移をおこなう(1)
画面遷移をおこなう(2)
今回は画面遷移前から遷移後にデータを渡したいと思います
遷移先画面にデータを受け渡すには、インテントにputExtraを使って
渡したいデータのキー文字列と値を指定して渡します
今回は数値“100”と文字“test”をメインアクティビティからサブアクティビティに
データを渡してみたいと思います
まずはMainActivityにputExtraを追記します
javaソースを以下のように修正します
package blog.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; 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); setTitle("MainActivity"); //id button1をbに当てはめている Button b = (Button)findViewById(R.id.button1); //bが押された時の動作 b.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //intentの作成 Intent intent = new Intent(MainActivity.this,SubActivity.class); //putExtraで渡す値を設定 intent.putExtra("int Value", 100); intent.putExtra("String Value", "test"); //intentをスタート startActivity(intent); } }); } }intent.putExtra("int Value", 100);で100を
intent.putExtra("String Value", "test");でtestをそれぞれ送っています
つぎにsubActivityのレイアウトのxmlソースを以下のように修正します
追加部分はtextViewを2つ追加しただけです
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="mainに戻る" /> </LinearLayout>
最後にSubActivityを修正します
数値を受け取るにはgetIntExtra
文字を受け取るにはgetCharSequenceExtra
を使います
数値を受け取る部分に
int getint = intent.getIntExtra("int Value",0);
を追記します
("int Value",0)の二項目目の“0”は初期値を入力します
もし何も送られていない場合はこちらが採用されます
以下javaソースです
package blog.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class SubActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); setTitle("SubActivity"); Intent intent = getIntent(); //MainActivityから値を受け取る int getint = intent.getIntExtra("int Value",0); CharSequence getstring = intent.getCharSequenceExtra("String Value"); //id textView1をt1に当てはめている TextView t1 = (TextView)findViewById(R.id.textView1); //id textView1をt2に当てはめている TextView t2 = (TextView)findViewById(R.id.textView2); //受け取った値を表示 t1.setText("受け取った数値は"+String.valueOf(getint)); t2.setText("受け取った文字は"+getstring); //id button1をbに当てはめている Button b = (Button)findViewById(R.id.button1); //bが押された時の動作 b.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { finish(); } }); } }SubActivityに画面遷移後に受け取った値を表示させています

当然mainにもどるを押すとfinishによりMainActivityに戻ります
スポンサードリンク
【インテント 画面遷移の最新記事】