Android - вызов метода в одном действии из другого, без запуска нового действия - PullRequest
3 голосов
/ 23 февраля 2011

Я разрабатываю приложение для Android с использованием GreenDroid. Приложение предназначено только для тестирования банкоматов, поэтому оно содержит панель действий с кнопкой обновления, тремя вкладками и действиями для каждой из этих вкладок.

Все, чего я пытаюсь добиться в данный момент, - это отображать всплывающее сообщение при нажатии кнопки обновления на панели действий, но я хочу, чтобы всплывающее сообщение вызывалось из одного из моих действий, мы назовем его Listener1Activity. это действие, которое находится на первой вкладке ... это потому, что Listener1Activity в конечном итоге будет содержать список, который я хочу перезагрузить при нажатии кнопки ActionBar, если я могу заставить его работать с простым сообщением тоста, то я могу разберись позже.

Я изучил намерения, радиопередачи, но, похоже, ничего не подходит.

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

Так что, по сути, это похоже на одновременное выполнение двух действий и нажатие кнопки в одном вызове метода в другом. Не так ли? Или я ошибся?

SenderActivity и Listener1Activity.

В iOS я бы просто отправил NSNotification от SenderActivity и добавил наблюдателя в Listener1Activity. Как лучше всего добиться этого в Android?

Спасибо!

Стивен

Ответы [ 4 ]

5 голосов
/ 23 февраля 2011

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

public class ActivityBase extends Activity
{
public void showToast()
{
...

Тогда ваша деятельность проистекает из этого

public class MyActivity extends ActivityBase
{
public void someMethod()
{
showToast();
3 голосов
/ 23 февраля 2011

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

YourClass.staticMethod(params);

Если нет, вам нужно создать для него объект.

YourClass yourClass = new YourClass(constructorParams);
yourClass.method(params);

Это должно сделать.

0 голосов
/ 05 января 2015

В дополнение к статическому методу нельзя вызывать любые методы, которые в другом действии!

0 голосов
/ 19 сентября 2013

Я не уверен в вашем вопросе, но попытайтесь, как это может быть, это будет работать

((MainActivity) activity).textViewSetText();

public void textViewSetText (String value){

    tv.setText(value);    
}

, но ваша деятельность должна расширять MainActivity.

...