Могу ли я вызвать метод другого действия из другого действия?

Я хочу вызвать метод Другой активности. Я много искал и пытался сам, но потерпел неудачу. Он работает, когда я вызываю из класса в класс, например, classA m = new classA (); m.function (); Но я хочу вызвать из другого метода активности. Пожалуйста помоги

public void onNotificationPosted(StatusBarNotification sbn) {
    ChatActivity ch=new ChatActivity();
    ch.location();
}

Действия - это просто классы, если у вас есть экземпляры другого Activity, вы можете вызвать для него метод. Каков ваш код, что вы на самом деле пытаетесь сделать и Зачем?

luk2302 15.04.2018 19:43

Когда я вызываю метод класса, он работает, но не работает, когда я вызываю метод действия

Msb Says 15.04.2018 19:44

покажи код !!

neo73 15.04.2018 19:45

публичная недействительность onNotificationPosted (StatusBarNotification sbn) {ChatActivity ch = new ChatActivity (); ch.location (); }

Msb Says 15.04.2018 19:45
new ...Activity() - очень плохая идея.
luk2302 15.04.2018 19:46

так? как мне вызвать?

Msb Says 15.04.2018 19:47

Мне нужно только вызвать из другой активности. когда я запускаю это приложение, вылетает. когда я звоню из класса, все работает нормально

Msb Says 15.04.2018 19:49

показать правильный код и ошибку

neo73 15.04.2018 19:50

ты мог бы, но я не думаю, что тебе следует

Levi Moreira 15.04.2018 19:51

Почему вы разместили этот код в другом действии? Если вам нужны общие функции, переместите их во вспомогательный или общий родительский класс. Если вам нужно состояние другого действия, сохраните соответствующую информацию в контексте, когда состояние изменилось. Звонить с одного занятия на другое - очень плохая идея.

gaborsch 15.04.2018 19:58

@gaborsch метод также работает в другом действии, поэтому я хочу разрешить метод в этом действии и вызвать его из другого действия. я надеюсь ты понял это

Msb Says 15.04.2018 20:11

@MsbSays ИМХО лучше бы вынести в отдельный класс lib

gaborsch 15.04.2018 20:45

Вы устранили ошибку ApplicationContext.getInstance ()?

Khemraj Sharma 16.04.2018 13:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
13
55
1

Ответы 1

public class ApplicationContext extends Application {

    public ActivityMain activityMain;

    public void setActivityMain(ActivityMain activityMain) {
        this.activityMain = activityMain;
    }

    public ActivityMain getActivityMain() {
        return activityMain;
    }

В ActivityMain.class

public class ActivityMain extends BaseProject implements MainView {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ApplicationContext.getInstance().setActivityMain(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        ApplicationContext.getInstance().setActivityMain(null);
    }

Используйте его где угодно, например, Activity, Fragments, Broadcast Receiver или Service, например

if (ApplicationContext.getInstance().getActivityMain()!=null){
ApplicationContext.getInstance().getActivityMain().callAnyMethod();
}

Наслаждаться :)

Вам нужно пояснить свой ответ немного подробнее: /

Levi Moreira 15.04.2018 19:55

Я предполагаю, что этот код говорит сам за себя ... и не требует объяснений. Я хочу проголосовать за это.

Abdul Waheed 15.04.2018 20:05

Это хорошее предложение. Если у кого-то есть альтернатива получше, я хотел бы знать.

Abdul Waheed 15.04.2018 20:06

получение ошибки getInstance (). не могли бы вы объяснить немного больше

Msb Says 15.04.2018 20:08

Привет, чувак, у вас есть класс приложения в часовом классе, если у вас его нет, создайте его, getinstance () - это метод в методе класса applicationcontext, который дает его экземпляр. Вам необходимо создать метод экземпляра получения в классе приложения.

Khemraj Sharma 16.04.2018 03:23

Другие вопросы по теме