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

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

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

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

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

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

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
10.11.2016, 16:48 #16
а просто перенести этот метод целиком во вторую активити и вызывать там, не?
без создания экземпляра активити
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
10.11.2016, 17:27  [ТС] #17
перенести? В смысле скопировать код?

Добавлено через 55 секунд
мне нужно использовать данный метод на нескольких активити

Добавлено через 31 минуту
теперь другая проблема. В общем я вернулся к тому с чего изначально и начинал. В методе у меня используется бибилиотека
Java
1
android.content.SharedPreferences;
подключить у меня только получается если в классе
Java
1
extends MainActivity
. Но при вызове из другого активити у меня активити закрывается (не могу найти ошибку по какой закрывается). Либо не закрывается, а вместо него открывается активити где прописан этот класс, т.е. главный активити. Если создать класс без
Java
1
extends MainActivity
- не могу подключить
Java
1
android.content.SharedPreferences;
ExFau$t
273 / 248 / 43
Регистрация: 08.05.2012
Сообщений: 1,353
10.11.2016, 19:39 #18
ответ в сообщении №5,10 и 11
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
10.11.2016, 21:47  [ТС] #19
Но в таком случае у меня не получается использовать:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import android.content.SharedPreferences;
 
....
 
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, "");
    }
}
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 472
10.11.2016, 21:52 #20
Уже 100500 раз посоветовали делать метод в отдельном классе, но ТС упорно сует его в активити. Видимо, дело принципа

Добавлено через 1 минуту
Цитата Сообщение от charset Посмотреть сообщение
extends MainActivity
Вот это вот зачем?

Добавлено через 2 минуты
И где конструктор класса? Там можно было бы контекст передать, если религия позволяет. А из контекста и в SharedPreferences пробраться...
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
10.11.2016, 22:03  [ТС] #21
ок, спасибо.
androbro
326 / 286 / 60
Регистрация: 17.10.2014
Сообщений: 842
11.11.2016, 09:40 #22
charset, тут все зависит от того что делает ваш метод, если какие то тривиальные операции, сделайте static метод в каком нибудь классе Utils...

Добавлено через 8 минут
чет я первую страницу не заметил)))
можно del...
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
15.11.2016, 01:37  [ТС] #23
Взял в качестве extends Context, но пришлось делать класс абстрактным. Теперь вот запутался как на его основе сделать что бы можно было использовать в программе.

Добавлено через 1 минуту
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.example.transtsendental;
 
import android.content.Context;
import android.content.SharedPreferences;
 
abstract class AMainLib extends Context{
    SharedPreferences sPref;
    final String SAVED_TEXT = "saved_text";
 
    String LoadParam_pub_fsf(String name){
        sPref= getSharedPreferences(name, MODE_PRIVATE);
        return sPref.getString(SAVED_TEXT, "");
    }
}
не могу понять как на его основе создать не абстрактный класс, что бы можно было обращаться к методу
Java
1
LoadParam_pub_fsf
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 472
15.11.2016, 03:33 #24
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от charset Посмотреть сообщение
Взял в качестве extends Context
Зачем???

Добавлено через 13 минут
Может хватит людей мучать...

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class AMainLib {
 
        final String SAVED_TEXT = "saved_text";
        private static AMainLib instance;
        private final SharedPreferences sPref;
        private Context context;
 
    public AMainLib(Context context) {
        this.context = context;
    }
 
    public static AMainLib getInstance(Context context) {
        if (instance == null) instance = new AMainLib(context);
        return instance;
    }
    
    public String LoadParam_pub_fsf(String name){
        sPref = context.getSharedPreferences(name, MODE_PRIVATE);
        return sPref.getString(SAVED_TEXT, "");
    }
 
}
В каждой активити:

Java
1
String result = AMainLib.getInstance(getApplicationContext()).LoadParam_pub_fsf(name);
charset
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 12
15.11.2016, 19:25  [ТС] #25
Цитата Сообщение от OlegJV Посмотреть сообщение
Может хватит людей мучать...
Спасибо за помощь, сделал почти также (чуть-чуть подправил)

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
package com.example.transtsendental;
 
import android.content.Context;
import android.content.SharedPreferences;
 
class AMainLib {
 
    private Context context;
    final String SAVED_TEXT = "saved_text";
    private static AMainLib instance;
    SharedPreferences sPref;
    
 
    public AMainLib(SharedPreferences sPref, Context context) {
        this.sPref = sPref;
        this.context = context;
    }
 
    public static AMainLib getInstance(Context context, SharedPreferences sPref) {
        if (instance == null) instance = new AMainLib(sPref, context);
        return instance;
    }
 
    public String LoadParam_pub_fsf(String name){
        sPref = context.getSharedPreferences(name, context.MODE_PRIVATE);
        return sPref.getString(SAVED_TEXT, "");
    }
 
}
Ну и вызов соответственно:
Java
1
 String result = AMainLib.getInstance(getApplicationContext(),sPref).LoadParam_pub_fsf("MainDir");
ExFau$t
15.11.2016, 19:35
  #26

Не по теме:

аплодисменты...

OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 472
15.11.2016, 22:30 #27
Что ж ты косячишь все время... Нафига sPref в класс передавать, если ты их там все равно заново получаешь. И ещё и местами их попутал с контекстом в вызове...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2016, 22:30
Привет! Вот еще темы с ответами:

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

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...


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

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

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