Activityの画面遷移を実装する時は、遷移先のクラスにstaticメソッドを作ると楽

投稿日:2017年11月11日 更新日:

Androidアプリ開発に入門した時に知りたかったことの一つが、「Activityの画面遷移を実装する時は、遷移先のクラスにstaticメソッドを作ると楽」ということです。わざわざ書くことでもないかも知れませんが、これからAndroidアプリ開発へ入門する方のために書き残しておきます。

Activityを作成して、遷移先のクラスにstaticを作り、画面遷移するところまで解説してみたいと思います。

遷移先のActivityを作る

まずは遷移先のActivityを作りましょう。今回はActivityの作成をAndroid Studioの機能に任せてみます。Android Studioのプロジェクトウインドウ(画面左側)で右クリックから「New > Activity > Empty Activity」などを選択してActivityを作成します。Empty Activityのところはお好みで...。

android studio

自分でクラスを作って、遷移先のActivityを作成することもできますが、その場合はAncroidManifest.xmlに遷移先のActivityに関する情報を書くのを忘れないようにしましょう。

普通に遷移処理を実装する

まずは普通にActivityの遷移処理を実装してみましょう。Intentを発行して、startActivityで呼び出します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.next_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this, DetailActivity.class);
            startActivity(intent);
        }
    });
}

この方法の欠点は、あちこちでDetailActivityへの遷移を実装すると、同じようなコードがプロジェクト中に散らばってしまうことです。Intentに値を乗せて渡そうとすると、さらに面倒くさいことになります。

このコードを改善してみましょう。

遷移先のActivityにstaticメソッドを作る

遷移先のActivityにstaticメソッドを作っていきます。この時に必ず必要となるのはContextです。引数としてContextを渡してあげます。他についてはよしなに...。

public static void start(Context context) {
    Intent intent = new Intent(context, DetailActivity.class);
    context.startActivity(intent);
}

遷移元では、このstaticメソッドを呼び出して、Contextを渡してあげるだけでActivityの遷移を実現することができます。

findViewById(R.id.next_button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        DetailActivity.start(MainActivity.this);
    }
});

まとめ

本記事では、わざわざ書くほどでもない、Activityの遷移を実装するためのTipsを紹介してみました。

私がAndroidアプリ開発へ入門した時は、この実装方法が思い浮かばず、あちこちに似たようなコードを散乱させてしまっていました。これからAndroidアプリ開発に入門する方の参考になれば幸いです。よろしくお願いします。

茨城県つくば市在住のAndroidアプリエンジニアです。

-Android

Copyright© Androidアプリ開発@つくば , 2017 AllRights Reserved Powered by AFFINGER4.