2011-02-23 4 views
3

GreenDroid를 사용하여 Android 앱을 개발 중입니다. 응용 프로그램은 atm을 테스트하기위한 것일 뿐이므로 새로 고침 버튼, 세 개의 탭 및 각 탭에 대한 활동이있는 ActionBar 만 포함됩니다.Android - 새로운 활동을 시작하지 않고 한 활동에서 다른 활동으로 메소드 호출하기

나는 액션 바에서 새로 고침 버튼을 눌렀을 때 토스트 메시지를 보여주고 싶지만 토스트 메시지를 내 활동 중 하나에서 불러 내기를 원한다. 우리는 그것을 호출 할 것이다. Listener1Activity는 첫 번째 탭에있는 활동입니다. Listener1Activity에는 ActionBar 버튼을 눌렀을 때 다시로드하려는 목록이 포함되어있을 것입니다. 이제 간단한 토스트 메시지로 작업 할 수 있습니다. 나중에 그것을 분류 할 수 있습니다.

나는 의도와 방송을 조사했지만 어떤 것도 적합하지 않은 것으로 보입니다.

do not 버튼을 누를 때마다 새로운 활동이 시작되기를 원하며, 그 중 하나의 메소드가 호출되어 축배를 보여 주기만하면됩니다.

기본적으로이 기능은 동시에 2 개의 액티비티를 동시에 실행하는 것과 같습니다. 하나의 버튼을 누르면 다른 액티비티를 호출하는 것과 같습니다. 그렇지 않니? 아니면 내가 틀렸어?

SenderActivity 및 Listener1Activity.

iOS에서는 SenderActivity의 NSNotification을 보내고 Listener1Activity에 관찰자를 추가합니다. Android에서이 목표를 달성하는 가장 좋은 방법은 무엇입니까?

감사합니다. 당신이 다른 활동 인스턴스화하지 않으려면

스티븐

답변

5

는, 그이 방법을위한 장소 아니다. 둘 이상의 활동간에 기능을 공유하는 경우 활동에서 파생 된 활동의 기본 클래스를 작성하지 않는 것이 좋습니다.

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

는 그런 다음 활동이

public class MyActivity extends ActivityBase 
{ 
public void someMethod() 
{ 
showToast(); 
3

오른쪽에서 파생. 방법이 당신의 목표 인 경우가 아마해야하는 정적, 그냥 같이 호출 :

YourClass.staticMethod(params); 

그렇지 않다면, 당신은 그것을 위해 객체를 생성해야합니다.

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

그렇게해야합니다.

0

나는 당신의 질문에 대해 잘 모르겠어요 될 수 있지만이 같은 시도가

((MainActivity) activity).textViewSetText(); 

public void textViewSetText (String value){ 

    tv.setText(value);  
} 

을 작동하지만 당신의 활동에이 MainActivity를 확장합니다.

0

정적 메서드 외에도 다른 작업에서 메서드를 호출 할 수 없습니다!

관련 문제