Есть ли способ вызвать startActivityforResult из действия или фрагмента, используя только один экземпляр - PullRequest
0 голосов
/ 21 июня 2019

Я пишу вспомогательный класс, который внутренне вызывает startActivityForResult, который может быть вызван из fragment или activity.

Я знаю косвенный обходной путь с помощью загруженного метода для установки setOnActivityResultReciever(fragment), setOnActivityResultReciever(Activity)

Есть ли способ избежать перегрузки?

перегруженные методы

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете создать общий класс утилит и определить начальную активность. Если вы хотите передать динамическое значение intent, передайте значение вместо intent.

CommonUtils.startActivityForResult(activity, intent); //from activity
CommonUtils.startActivityForResult(fragment, intent); //from fragment

Посмотрите на этот код, надеюсь, вы получите ответ.

public class CommonUtils {

    private Activity mActivity;
    private Fragment mFragment;

    public void startActivityForResult(Activity activity, Intent intent) {
        // TODO Auto-generated constructor stub
        mActivity = activity;
        startActivityForResult(activity, intent);
    }

    public void startActivityForResult(Fragment fragment, Intent intent) {
        // TODO Auto-generated constructor stub
        mFragment = fragment;
        startActivityForResult(fragment, intent);
    }
}
...