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

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

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

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

24.06.2013, 21:22. Просмотров 6249. Ответов 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. Я так понимаю проблемы с контекстом, помогите примером или поправьте выложенный код, уже не знаю как правильно здесь всё сделать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
25.06.2013, 01:13  [ТС]     Как запустить метод из другого класса? #21
вот оказывается как надо... Спасибо огромное, работает!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 17:06     Как запустить метод из другого класса?
Еще ссылки по теме:

Android Как запустить метод в сервисе, в определённое время?
Как запустить метод из Service? Android
Android Как передать данные в Activity из другого класса
Android Подскажите как запустить через Inten Activity другого приложения
Как запустить метод в заданное время Android

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

Или воспользуйтесь поиском по форуму:
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
31.07.2013, 17:06     Как запустить метод из другого класса? #22
У меня подобная проблема возникла.
Я написал свой адаптер для списка ListView. В адаптере у меня обработчик onTouch на каждый пункт списка. Мне нужно вызвать стандартный андроидовский интент (звонок). Как его вызывать?
Запустить мне его нужно в методе analizeSwype.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        
        View view = convertView;
        
        if (view == null) {
              view = lInflater.inflate(R.layout.item, parent, false);
            }
        
        final Contact p = getContact(position);
            
        ((TextView) view.findViewById(R.id.name_tv)).setText(p.name);
        ((TextView) view.findViewById(R.id.num_tv)).setText(p.tel);
        
        
        OnTouchListener listener = new OnTouchListener() {
            
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                number = p.tel;
                switch (event.getAction())
                {
                case MotionEvent.ACTION_DOWN:
                    fromPosition = event.getX();
                    break;
                case MotionEvent.ACTION_UP: 
                    
                    float toPosition = event.getX();
                    analizeSwipe(fromPosition, toPosition);
                    
                }
                return true;
            }
        };
        
        view.setOnTouchListener(listener);
        
        
        return view;
    }
    
    Contact getContact(int position) {
        return ((Contact) getItem(position));
      }
    
    public String getLastNumber(){
        return number;
    }
    
    
    public void analizeSwipe(float from, float to){
        
        
        float device_x = DispMetrics.widthPixels;
        
        float minSwype = (device_x / 100) * 30;
        
        if (from > to && (from-to) > minSwype){
            
            Log.i("log_tag","Номер = " + number);
            
        }
    }
Добавлено через 15 минут
Всмысле, я знаю как вызвать сам интент, но не понимаю, как его вызвать в моем случае.

На активности я его вызывал так:

Java
1
2
3
Intent callIntent = new Intent(Intent.ACTION_CALL); 
             callIntent.setData(Uri.parse("tel:" + Num)); 
             startActivity(callIntent);
Как вызвать в адаптере - не знаю.

Добавлено через 1 час 31 минуту
Все, решил проблему. Вызвал с помощью контекста ctx.
Yandex
Объявления
31.07.2013, 17:06     Как запустить метод из другого класса?
Ответ Создать тему
Опции темы

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