アクティビティ起動のより良い方法

アクティビティを起動する、昔の書き方はこちら

Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code language: JavaScript (javascript)

考えたことがありますか?すべてのアクティビティが自分の担当とは限りません。

その場合、別のアクティビティを起動したいときは、担当者に聞くかドキュメントを確認する必要があります。

でもこれ、面倒だと思いませんか?

何か良い方法はないでしょうか?

アクティビティ起動の処理を、担当者側に任せられないでしょうか?

つまり各アクティビティの作成者が、そのアクティビティ内部にメソッドを用意し、他の人がこのメソッドを呼んで起動できるようにするということです。

Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//自身のアクティビティから別のアクティビティを起動
//呼び出し先のアクティビティが必要とするデータを把握する必要があるため、開発者同士で調整が必要
startActivity(it);Code language: JavaScript (javascript)

では試してみましょう。対象アクティビティに静的メソッドを追加します。

//アクティビティ起動のコードを、対象クラスの中に記述する
public static void actionStart(Context context, String site, int level)
{
    Intent it = new Intent(context,NormalActivity.class);
    it.putExtra("site",site);
    it.putExtra("level",level);
    context.startActivity(it);
}Code language: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code language: CSS (css)

アクティビティ起動のより良い方法

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です