0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AndroidStudio 画面の追加と遷移(消去)

Last updated at Posted at 2024-12-22

画面追加と遷移の処理

イメージ

携帯.gif

画面を追加する

フォルダの java > com.~のとこで右クリック
image.png


新規 > Activity > EnptyViewsActivityをクリック

バージョンによって名前が違う場合があり
"EnptyViewsActivity"は
"EnptyActivity"だったりもする

image.png


新規作成の時と同じ画面がでるので設定して完了を押す
image.png


作成が正常にできてタブに追加された
※画像はMainActivity2で追加作成した状態
image.png

画面を遷移させる

activity_main.xmlでレイアウト
画面上にボタンをセットする
image.png


MainActivityへ追記する

MainActivity
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

        //ボタンを押した++++++++++
        Button button = findViewById(R.id.btNext1);
        button.setOnClickListener(new ButtonClickListener());
        //+++++++++++++++++
    }
    
    //処理+++++++++++++++
    private class ButtonClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, MainActivity2.class);
            startActivity(intent);
        }
    }
    //+++++++++++++++++
}

画面を遷移させる処理

public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, MainActivity2.class);
    startActivity(intent);
}

Intent intent =
new Intent(MainActivity.this, MainActivity2.class);

コンストラクタの引数

  • 第1:packageContext
     現在のコンテキスト(アクティビティ)
     ここでは MainActivity.this を指定しています。
  • 第2:cls
     遷移先のクラス(アクティビティクラスの名前.class)
     追加で作成したMainActivity2.classを指定します。

startActivity(intent);
画面遷移を実行するためのコード
引数のintentは上で設定したやつ

これで次の画面への遷移処理ができた。

画面を戻す

activity_main2.xmlでレイアウト
遷移先の画面にボタンを配置
image.png

MainActivity2へ追記する

MaineActivity2
public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main2);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }

    //ボタンを押した時の処理+++
    public void backBottomClick(View view) {
        finish();
    }
    //++++++++++++++
}

ボタン用のメソッド

public void backBottomClick(View view) {
    finish();
}

これを設定しておくとAttributeで設定できる
image.png

  • finish()
    現在のアクティビティを終了させる
    これでボタンを押すとMaineActivity2が終了し、
    2番目にスタックされているページ1が表示されることになる

今回の処理の図

image.png
画面はfinish()とかで消さない限り
残り続ける(スタックされる)ので考えて設定する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?