Я хочу вызвать метод Другой активности. Я много искал и пытался сам, но потерпел неудачу. Он работает, когда я вызываю из класса в класс, например, classA m = new classA (); m.function (); Но я хочу вызвать из другого метода активности. Пожалуйста помоги
public void onNotificationPosted(StatusBarNotification sbn) {
ChatActivity ch=new ChatActivity();
ch.location();
}
Когда я вызываю метод класса, он работает, но не работает, когда я вызываю метод действия
покажи код !!
публичная недействительность onNotificationPosted (StatusBarNotification sbn) {ChatActivity ch = new ChatActivity (); ch.location (); }
new ...Activity() - очень плохая идея.
так? как мне вызвать?
Мне нужно только вызвать из другой активности. когда я запускаю это приложение, вылетает. когда я звоню из класса, все работает нормально
показать правильный код и ошибку
ты мог бы, но я не думаю, что тебе следует
Почему вы разместили этот код в другом действии? Если вам нужны общие функции, переместите их во вспомогательный или общий родительский класс. Если вам нужно состояние другого действия, сохраните соответствующую информацию в контексте, когда состояние изменилось. Звонить с одного занятия на другое - очень плохая идея.
@gaborsch метод также работает в другом действии, поэтому я хочу разрешить метод в этом действии и вызвать его из другого действия. я надеюсь ты понял это
@MsbSays ИМХО лучше бы вынести в отдельный класс lib
Вы устранили ошибку ApplicationContext.getInstance ()?




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();
}
Наслаждаться :)
Вам нужно пояснить свой ответ немного подробнее: /
Я предполагаю, что этот код говорит сам за себя ... и не требует объяснений. Я хочу проголосовать за это.
Это хорошее предложение. Если у кого-то есть альтернатива получше, я хотел бы знать.
получение ошибки getInstance (). не могли бы вы объяснить немного больше
Привет, чувак, у вас есть класс приложения в часовом классе, если у вас его нет, создайте его, getinstance () - это метод в методе класса applicationcontext, который дает его экземпляр. Вам необходимо создать метод экземпляра получения в классе приложения.
Действия - это просто классы, если у вас есть экземпляры другого Activity, вы можете вызвать для него метод. Каков ваш код, что вы на самом деле пытаетесь сделать и Зачем?