Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.74
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Как запустить метод из другого класса? - Программирование Android

24.06.2013, 21:22. Просмотров 6676. Ответов 21
Метки нет (Все метки)

есть класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Class1 extends DialogFragment implements OnClickListener {
 
    TextView textViewMessage;
 
    String name;
    String nameEvent;
 
    Class2 class2;
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        class2 = new Class2();
 
        View v = inflater.inflate(R.layout.class, null);
        v.findViewById(R.id.button1).setOnClickListener(this);
        v.findViewById(R.id.button2).setOnClickListener(this);
 
        return v;
    }
 
    public void onClick(View v) {
 
        switch (v.getId()) {
        case R.id.button1:
            dismiss();
            break;
        case R.id.button2:
 
            class2.stActivity();
 
            break;
        }
 
    }
 
    public void onDismiss(DialogInterface dialog) {
        super.onDismiss(dialog);
    }
 
    public void onCancel(DialogInterface dialog) {
        super.onCancel(dialog);
    }
 
}
из него я так: class2.startLoginActivity(); вызываю метод из другого класса. Вот класс который содержит вызывающий метод:

Java
1
2
3
4
5
6
7
8
9
10
public class Class2 extends Activity {
 
    private static final int REQUEST_LOGIN = 1;
 
                public void stActivity() {
        Intent intent = new Intent();
        intent.setClass(this, myActivity.class);
        startActivityForResult(intent, REQUEST_LOGIN);
    }
}
Но выскакивает nullPointExeption. Я так понимаю проблемы с контекстом, помогите примером или поправьте выложенный код, уже не знаю как правильно здесь всё сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 21:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как запустить метод из другого класса? (Программирование Android):

Как запустить метод из другого окна? - C# WPF
Подскажите пожалуйста, смотрю примеры разные но не пойму как правильно сделать. Имеем окно MainWindow с кодом namespace Run { ...

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса? - Java SE
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна найти в i-том элементе какую-то...

Как верно вызвать метод другого класса - Python
Есть код на Java, не понимаю как верно его реализовать на Python, интересует только реализация вызова метода класса А из объекта класса b: ...

Как запустить метод класса в отдельном потоке? - Visual C++
Как запустить метод класса в отдельном потоке?

Как запустить метод класса из интерфейса администратора? - Python
class Project(models.Model): name = models.CharField(max_length=30) def Runn(self): self.name = 'daaa' ...

Как объявить другом конкретный метод другого класса? - C++
Как в одном классе объявить другом метод другого класса?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
24.06.2013, 21:34 #2
Например
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
 
public class ConnectionDetector {
 
    private Context _context;
 
    public ConnectionDetector(Context context){
        this._context = context;
    }
 
    public boolean isConnectingToInternet(){
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null)
          {
              NetworkInfo[] info = connectivity.getAllNetworkInfo();
              if (info != null)
                  for (int i = 0; i < info.length; i++)
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }
 
          }
          return false;
    }
}
Использование
Java
1
2
3
4
ConnectionDetector cd;
 
cd = new ConnectionDetector(getApplicationContext());
isInternetPresent = cd.isConnectingToInternet();
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 21:59  [ТС] #3
@Digetix, огромное вам спасибо за пример, но а не могли бы вы свой выложенный код применить к моему выложенному коду, а то я не понимаю...
заранее спасибо за понимание.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 22:08 #4
нельзя создавать экземпляр активити.
а почему вы поместили метод в другой класс?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
24.06.2013, 22:19 #5
Цитата Сообщение от V0v1k Посмотреть сообщение
нельзя создавать экземпляр активити.
а почему вы поместили метод в другой класс?
Это кому вопрос?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 22:25 #6
да автору.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 22:31  [ТС] #7
Цитата Сообщение от V0v1k Посмотреть сообщение
а почему вы поместили метод в другой класс?
просто мне нужно будет вызовать метод из разных других активностей и дублировать один и тот же код в каждом новом классе как-то не разумно. Хочу всё в одном классе разместить а потом просто вызывать метод. Ещё плюс там будет не один метод а несколько.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 23:16 #8
ну так выносите метод с активити в какой-то отдельный вспомогательный класс или в родительский класс.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 23:22  [ТС] #9
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так выносите метод с активити в какой-то отдельный вспомогательный класс или в родительский класс.
я выношу, в первом посте описано, и код представлен. Но не получается, не запускается метод.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 23:23 #10
где вы выносите? я не вижу.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 23:36  [ТС] #11
Вот:
Java
1
2
3
4
5
6
7
8
9
10
public class Class2 extends Activity {
 
    private static final int REQUEST_LOGIN = 1;
 
                public void stActivity() {
        Intent intent = new Intent();
        intent.setClass(this, myActivity.class);
        startActivityForResult(intent, REQUEST_LOGIN);
    }
}
Добавлено через 11 минут
я для примера привел один метод...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 23:46 #12
это родительский класс или что?
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 23:51  [ТС] #13
Цитата Сообщение от V0v1k Посмотреть сообщение
это родительский класс или что?
нет, это просто отдельный ни от кого не зависящий класс, да ещё и в другом Package.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 23:52 #14
а почему он активити?
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.06.2013, 23:54  [ТС] #15
Цитата Сообщение от V0v1k Посмотреть сообщение
а почему он активити?
просто я много тестов пытался проделать, чтобы запустить метод. Это было одним из них. Таким образом я пытался context получить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 23:54
Привет! Вот еще темы с ответами:

Как запустить метод класса одновременно в разных потоках? - C#
Как запустить метод класса одновременно в разных потоках? Будет ли конфликт между ними, или создать несколько экз. класса и в каждом потоке...

Как для события Button_Click вызвать метод из другого класса ? - C#
Добрый вечер, уважаемые форумчане ! Разбираюсь с делегатами и событиями. Хочу вызвать метод из стороннего класса для события...

Как передать неявно типизированную переменную в метод другого класса? - C#
Приветствую тебя читатель. Например: У меня есть класс в котором я хочу написать несколько LINQ запросов, а при помощи другого...

Передача значения переменной из метода одного класса в метод другого класса - C#
Добрый вечер! Есть основная форма Form1 в которой есть метод private void button1_Click(object sender, EventArgs e) обрабатывающий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.06.2013, 23:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru