画面の遷移  
 
 
このサンプルでは次の処理を実装する方法を紹介します。 
メイン画面から次の画面を開く処理 
開いた画面を閉じてメイン画面に戻す(再度表示させる)処理 
 
ここで使用するのは次の内容となります。 
 
| 項目 | 内容 |  | (1) | AndroidManifes.xml |  | (2) | MainActivity |  | (3) | SubActivity |  
  
 
最初に作成されている画面を「MainActivity」とします。 
 
java内に作られている、このサンプルであれば「com.example.test.test7」を右クリックします。 
New→Java Classを選択します。 
 
 
 
 
 
 
 
 
 
 
このサンプルでは「SubActivity」として「OK」を選択しています。 
 
 
 
 
 
このようなエディタが表示されると思うので最低限、次の処理を追加してください。 
 
extends AppCompatActivity 
import android.content.Intent; 
 
 
 
 
 
次に、「AndroidManifest.xml」を修正します。 
 
 
 
 
 
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.test.test7"> 
 
    <application 
        android:allowBackup="true" 
        android:icon="@mipmap/ic_launcher" 
        android:label="@string/app_name" 
        android:supportsRtl="true" 
        android:theme="@style/AppTheme"> 
        <activity android:name=".MainActivity"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
        <!-- 
        次の宣言をする必要があります。 
        import android.support.v7.app.AppCompatActivity; 
        次のように「AppCompatActivity」を継承させてください。 
         extends AppCompatActivity 
        --> 
        <activity android:name=".SubActivity"> 
            <intent-filter> 
                <action android:name="android.intent.action.Sub" /> 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
 
</manifest> 
  | 
 
 
 
流れとしては次の通りです。 
 
| No | 内容 |  | 1 | このサンプルでは各画面にボタンを1個準備しています。 |  | 2 | メイン画面のボタンをタップするとサブ画面を開くようにします。 このとき、メイン画面は閉じていません。 |  | 3 | サブ画面が表示されるとボタンが表示されています。 |  | 4 | サブ画面のボタンをタップするとサブ画面を閉じます。 |  | 5 | サブ画面が閉じることでメイン画面が表示されます。 |  
  
メイン画面 
 
 
 
 
package com.example.test.test7; 
 
//画面を遷移するために必要となります。 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
 
//Viewを使用するための宣言 
import android.view.View; 
//ボタンを使用するための宣言 
import android.widget.Button; 
//RelativeLayoutを使用するための宣言 
import android.widget.RelativeLayout; 
 
//メイン画面 
public class MainActivity extends AppCompatActivity { 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
 
        RelativeLayout layout = new RelativeLayout(this); 
        setContentView(layout); 
 
        //配置を設定 
        //座標の初期設定 
        int x=0; 
        int y=0; 
        int width=0; 
        int height=0; 
 
        x=50; 
        y=50; 
        width=200; 
        height=60; 
        RelativeLayout.LayoutParams obj1 = getLayoutObject(width, height); 
        obj1.leftMargin=x; 
        obj1.topMargin=y; 
 
        Button btn = new Button(this); 
        btn.setText("次の画面へ"); 
        //レイアウトに追加 
        layout.addView(btn, obj1); 
        btn.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                //インテントで画面を開くための準備をします。 
                Intent intent = new Intent(MainActivity.this, SubActivity.class); 
                //次の画面を開きます。 
                startActivity(intent); 
            } 
        }); 
    } 
    //レイアウトを決定するオブジェクトを生成し渡します 
    public RelativeLayout.LayoutParams getLayoutObject(int width,int height) 
    { 
        return new RelativeLayout.LayoutParams(width, height); 
    } 
} 
  | 
 
 
 
 
インテントを使用して現在の画面と開く画面を引数に設定し、インスタンス化します。 
(例) 
Intent intent = new Intent(MainActivity.this, SubActivity.class); 
startActivityを使って画面を開きます。 
引数にはインテントのオブジェクトを設定します。 
(例) 
startActivity(intent); 
 
 
サブ画面 
 
 
 
 
 
package com.example.test.test7; 
 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
 
//画面を遷移するために必要となります。 
import android.content.Intent; 
//Viewを使用するための宣言 
import android.view.View; 
//ボタンを使用するための宣言 
import android.widget.Button; 
//RelativeLayoutを使用するための宣言 
import android.widget.RelativeLayout; 
 
//サブ画面 
public class SubActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
 
 
        RelativeLayout layout = new RelativeLayout(this); 
        setContentView(layout); 
 
        //配置を設定 
        //座標の初期設定 
        int x=0; 
        int y=0; 
        int width=0; 
        int height=0; 
 
        x=50; 
        y=50; 
        width=200; 
        height=60; 
        RelativeLayout.LayoutParams obj1 = getLayoutObject(width, height); 
        obj1.leftMargin=x; 
        obj1.topMargin=y; 
 
        Button btn = new Button(this); 
        btn.setText("閉じる"); 
        //レイアウトに追加 
        layout.addView(btn, obj1); 
        btn.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                //画面を閉じます。 
                finish(); 
            } 
        }); 
    } 
    //レイアウトを決定するオブジェクトを生成し渡します 
    public RelativeLayout.LayoutParams getLayoutObject(int width, int height) 
    { 
        return new RelativeLayout.LayoutParams(width, height); 
    } 
} 
 
 | 
 
 
 
 
ボタンをクリックすると「finish()」を実行させ、画面をとじます。 
 
画面が閉じるとメイン画面が表示されます。 
 
 
 
 
 
 
もしもメイン画面からサブ画面を開いたとき、メイン画面は閉じたい場合は 
startActivityメソッドの後に「finish();」を実行してください。 
(例) 
メイン画面の「次の画面へ」ボタンをタップした場合 
 
 
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
        //インテントで画面を開くための準備をします。 
        Intent intent = new Intent(MainActivity.this, SubActivity.class); 
        //次の画面を開きます。 
        startActivity(intent); 
        //画面を閉じます。 
        finish(); 
    } 
}); 
  | 
 
 
 
 
 | 
 |