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

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

Войти
Регистрация
Восстановить пароль
 
 
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
#1

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

08.11.2016, 01:09. Просмотров 656. Ответов 26
Метки нет (Все метки)

Добрый день. Подскажите такой вопрос: как можно использовать один метод для двух разных активити (android studio). Т.е. если я его опишу в паблик активити Main, как мне его подключить к активити second? Что-то перерыл весь интернет, а не могу найти ответ на этот вопрос.

Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2016, 01:09     Использование одного метода в двух активити
Посмотрите здесь:

Передача с одного активити в другое - Программирование Android
Помогите!!!Есть два активити в первом я ввожу данные в editText как мне сделать передачу в listview другого активити.Я сделал но у меня...

Возможно ли создание одного активити в другом? - Программирование Android
К примеру у меня есть приложение с меню из кнопок слева, и linearLayout справа. И я хочу чтоб при нажатии на кнопку в LinearLayout...

Как убрать Actionbar из одного активити - Программирование Android
Всем привет! Как убрать Actionbar из одного активити? Так, чтобы только в 1 активити его не было?

Три активити установились отдельными приложениями вместо одного - Программирование Android
Как я понял - Activity - это окно программы. Вот создал 3 окна программы, все работает отлично. Установил на устройство для проверки, и......

Как из одного активити строку передать в другую в виде listView - Программирование Android
это первое активитиpublic class TodoActivity extends Activity implements View.OnClickListener { private EditText mTaskInput; ...

Как правильно организовать переход с одного активити на другое с паролем - Программирование Android
Как правильно организовать переход с одного активити на другое с паролем (на первом активити вводится пароль и при верном вводе, чтобы...

Код для двух кнопок в одном активити - Программирование Android
Здравствуйте, я создал кнопку(в активити1), при нажатии на которую происходит переход на активити2. Но тут возник вопрос, как создать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
08.11.2016, 02:27     Использование одного метода в двух активити #2
Сделать метод в отдельном классе и вызывать его хоть из 20 активити
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
08.11.2016, 09:03  [ТС]     Использование одного метода в двух активити #3
пробовал, но не получается.

Я вызываю его из другого активити так: МайнАктивити.МайМетод(); но так не работает, пишет что не знает что такое МайнАктивити. Если просто МайМетод() - так же не знает.
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,437
08.11.2016, 10:17     Использование одного метода в двух активити #4
charset, если метод не статический то вы не можете вызывать его через класс.метод()
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,282
08.11.2016, 10:39     Использование одного метода в двух активити #5
Пишешь свой класс, там этот метод, потом в активити своих пишешь
Java
1
2
MyClass class=new MyClass(..); 
class.MyMethod(..);
Это написано в любой книжке по ооп, ещё можно статиком объявить, но это не очень.
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
08.11.2016, 15:32  [ТС]     Использование одного метода в двух активити #6
vxg, да, метод не статический

Добавлено через 46 секунд
ExFau$t, сейчас попробую.

Добавлено через 3 минуты
видимо что-то не то делаю. Что-то не получается. Но буду сейчас рыть в данном направлении.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
08.11.2016, 15:35     Использование одного метода в двух активити #7
Цитата Сообщение от charset Посмотреть сообщение
как можно использовать один метод для двух разных активити (android studio)
зачем и что на самом деле надо сделать?
Цитата Сообщение от charset Посмотреть сообщение
видимо что-то не то делаю
да, причем очень даже
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
08.11.2016, 15:42  [ТС]     Использование одного метода в двух активити #8
я создал методы в классе:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 
    Button b_record;
    Button b_add_words;
    SharedPreferences sPref;
    final String SAVED_TEXT = "saved_text";
    
   .....
 
    public int SaveParam(String name, String value){
        sPref = getSharedPreferences(name, MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString(SAVED_TEXT, String.valueOf(value));
        ed.apply();
        return 1;
    }
}
Может уже на этом этапе я что-то не то сделал?

Далее мне нужно вызвать метод SaveParam(String name, String value) из другого активити. Я делаю так:
Java
1
MainActivity class=new MainActivity; // но тут Gradle уже ругается.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
08.11.2016, 15:56     Использование одного метода в двух активити #9
Цитата Сообщение от charset Посмотреть сообщение
Далее мне нужно вызвать метод SaveParam(String name, String value) из другого активити.
зачем?
значит этот метод находится не на своем месте
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,282
08.11.2016, 15:58     Использование одного метода в двух активити #10
Ты создал не класс, а AppCompatActivity. А да, ещё конструктор в классе должен быть.
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 78
08.11.2016, 16:06     Использование одного метода в двух активити #11
Да дайте ему вот это почитать...
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
08.11.2016, 16:26  [ТС]     Использование одного метода в двух активити #12
спасибо, буду читать.
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
10.11.2016, 13:28  [ТС]     Использование одного метода в двух активити #13
в общем посмотрел статью, я так и делал. Разница в том что метод я сделал публичным, при этом он не был виден в экземпляре. Сделал его protected, теперь вижу (хотя по мне так как-то не логично), могу вызывать. Но теперь при вызове метода gridle выдает ошибку:

Error37, 59) error: <identifier> expected
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
10.11.2016, 13:31     Использование одного метода в двух активити #14
код будет или гадать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 16:36     Использование одного метода в двух активити
Еще ссылки по теме:

Использование разных onTouch для двух Layout элемента - Программирование Android
В одном Layout имеются два дочерних элемента LinearLayout. Как обработать метод onTouch для каждого отдельно? То есть листать первый и...

Вызов активити - Программирование Android
При удачной авторизации вылетает сообщение &quot;Login Successfull&quot;, а как сделать так что бы при этом еще совершался переход на другую...

Загрузка активити - Программирование Android
Добрый день! Сегодня один пользователь пожаловался на долгий запуск программы(3-5 секунд). При старте программы загружается main...

Запуск активити - Программирование Android
Создаю приложение-справку, при запуске выходит активити (MainActivity), которое содержит 2 кнопки (btnActPerv, btnActZan) при нажатии...

Адаптивность Активити - Программирование Android
Здравствуйте! Я решил в первый раз создать серьезный просто приложение! И нарисовал макет который выложу ниже... Открыл Андроид Студио! И...


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

Или воспользуйтесь поиском по форуму:
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
10.11.2016, 16:36  [ТС]     Использование одного метода в двух активити #15
Все. Вопрос решился. Экземпляр класса создавал за пределами другого метода, по этой причине андроидстудио не ругалось на его использовании, ну а при компиляции выдавалась ошибка. Создал экземпляр непосредственно перед вызовом метода данного класса - все работает.

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

Спасибо всем кто откликнулся.

Добавлено через 2 часа 59 минут
ах, да

это укороченный вариант
Java
1
2
3
4
5
6
7
8
9
class MainLib extends MainActivity{
    SharedPreferences sPref;
    final String SAVED_TEXT = "saved_text";
 
    protected String LoadParam_pub_fsf(String name){
        sPref = getSharedPreferences(name, MODE_PRIVATE);
        return sPref.getString(SAVED_TEXT, "");
    }
}
ну и вызов из другого активити
Java
1
2
3
4
public void onClick(View v) {
                MainLib main = new MainLib();
                Log.d(TAG, "ssss-main: "+main.LoadParam_pub_fsf("MainDir"));
            }
Yandex
Объявления
10.11.2016, 16:36     Использование одного метода в двух активити
Ответ Создать тему
Опции темы

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