猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Android

アクティビティ間の画面遷移

投稿日:2013年3月6日 更新日:

アクティビティから別のアクティビティを呼びだすと、新しいアクティビティは上に重ねられた状態になり、今まで使用していたアクティビティは停止します。
そして新しいアクティビティが終了すると、元のアクティビティが動作し始めます。

呼び出し方には2種類あって、単純に呼び出す方法と、新しいアクティビティが終了すると結果を受信する方法があります。

どちらの呼び出しでもintentを使用し、intentに文字列等を設定して渡してやることができます。
アクティビティ間でオブジェクトを渡す場合にはserializeが必用なので注意が必要ですがここではふれません。

intentには明示的インテントと暗黙的インテントがありますが、同じアプリ内で特定のアクティビティから特定のアクティビティを呼び出す場合には明示的インテントになります。
暗黙的インテントではURIを指定して、合致するURIを持つアプリが起動されるか、複数ある場合はどれを起動するか選択できますが、ここではふれまん。

新しく自作でアクティビティを作成することになるので、AndroidManifest.xmlに登録する必要があります。

単純な呼び出し

呼びだし元ではstartActivity()を使い新しいアクティビティを起動します。。新しいアクティビティはfinish()で終了し、元のアクティビティに戻ります。

//呼び出し元
    class btnClickListener implements OnClickListener{
		public void onClick(View v) {
			Intent intent = new Intent(Activity.this,Activity2.class);
			intent.putExtra(";MESSAGE";, ";値";);
			startActivity(intent);
		}
    }
//新しいアクティビティ
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
        Intent data = getIntent();
        Bundle extras = getExtras();
        String msg = extras.getString(";MESSAGE";);
        ・・・
    }
    class btnClickListener implements OnClickListener{
		public void onClick(View v) {
			finish();
		}
    }
<!-- AndroidManifest.xml -->
<activity android:name=";Activity2"; />

結果を受信する呼び出し

新しいアクティビティが終了する際にsetResultで値を設定し、その値を元のアクティビティではonActibityResultメソッドで受信します。

//呼び出し元
    private static final int ACT_CALL_OK = 0;
    class btnClickListener implements OnClickListener{
		public void onClick(View v) {
			Intent intent = new Intent(Activity.this,Activity2.class);
			intent.putExtra(";MESSAGE";, ";値";);
			startActivityForResult(intent,ACT_CALL_OK);
		}
    }
    @Override
    public void onActivityResult(int requestCode,int resultCode,Intent data){
    	if(requestCode==ACT_CALL_OK &amp;&amp; resultCode==RESULT_OK){
    		Bundle extra = data.getExtras();
    		String msg = extra.getString(";MODORI";);
    	}
    	
    }

//新しいアクティビティ
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
        Intent data = getIntent();
        Bundle extras = getExtras();
        String msg = extras.getString(";MESSAGE";);
        ・・・
    }
    class btnClickListener implements OnClickListener{
		public void onClick(View v) {
			Intent intent = getIntent();
			intent.putExtra(";MODORI";, ";戻す値";);
			setResult(RESULT_OK, intent);
			finish();
		}
    }
<!-- AndroidManifest.xml -->
<activity android:name=";Activity2"; />

Gooleアドセンス用336

Gooleアドセンス用336

-Android
-

執筆者:

関連記事

音声認識と音声合成(Text-To-Speech)

INDEX1 音声認識2 音声合成(Text-To-Speech)3 サンプル 音声認識 音声認識で注意しなくてはいけないのは、何語で認識させるかです。 つまり英語として認識させるか、日本語として認識 …

ListView(単一行)

各リストの中身が単一行の場合のサンプルです。 TestActivity.java package com.nekotype.test; import android.app.Activity; imp …

SQLiteに普通のselectを実行する

rawQueryメソッドを使用すれば、通常のselect分が利用できます。 取得したデータはカーソルを使って読み込みます。 ・・・ DBHelper helper = new DBHelper(Tes …

SQLiteにadbでアクセスする

コマンドプロンプトでadbのあるディレクトリまでcdで移動します。 私の場合はD:\Users\xxx\android-sdks\platform-tools にしてあります。 # d: # cd D …

match_parentとwrap_content

wrap_contentは幅を自動調整します。 match_parentは画面いっぱいに表示させます。 match_parentはAndroid2.2(API Label 8)以降で、fill_par …