切换Activity的常用方法

问题描述 投票:0回答:1

我试图找出我们是否可以创建一个通用方法来在活动之间切换,在这样做时我想将代码编写为:

private fun goToActivity(activity: AppCompatActivity){
    val intent = Intent(this, activity::class.java)
    startActivity(intent)
}

调用方法

    goToActivity(MainActivity2())

这是做这件事的好方法还是任何其他方法可以节省一次又一次重写“goToActivity”中编写的代码片段?

android kotlin generics android-intent
1个回答
0
投票

试试这个。下面将满足您的所有需求。

/**
     * @param context          Context fromactivity or fragment
     * @param bundle           Bundle of values for next Activity
     * @param destinationClass Destination Activity
     * @param isFinish         Current activity need to finish or not
     */
    public void newIntent(Context context, Class destinationClass, Bundle bundle, boolean isFinish, boolean isFlags) {
        if (!isActivityRunning(context)) {
            return;
        }
        Intent intent = new Intent(context, destinationClass);
        intent.putExtras(bundle);
        if (isFlags) {
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        }
        context.startActivity(intent);
        if (isFinish) {
            ((Activity) context).finish();
        }
    }

CommonFunctions.getInstance().newIntent(OrdersActivity.this, HomeActivity.class, Bundle.EMPTY, true,true);

像这样使用捆绑包

Bundle bundle = new Bundle();
                bundle.putString("name", "");
CommonFunctions.getInstance().newIntent(this, CartViewActivity.class, bundle, false, false);
© www.soinside.com 2019 - 2024. All rights reserved.