비 활동 클래스에서 활동을 시작하려면 어떻게해야합니까?
몇 가지를 보여주는지도보기 활동이 OverlayItems
있습니다. 에서 onTap
오버레이의 방법 I은 새로운 활동을 트리거 할 프로그램이 예를 들어, 전체 화면 등이 오버레이 사진.
내 오버레이 클래스 내에서 이렇게하면 :
Intent intent = new Intent();
intent.setClass(getApplicationContext, FullscreenView.class);
startActivity(intent);
.. 내가 활동의 범위에 있지 않기 때문에 응용 프로그램 컨텍스트를 찾을 수 없습니다.
주요 활동에 메소드를 추가 할 때 다음과 같이 말하십시오 startFullscreen
.
public static void startFullscreen() {
if (sCurrentPhoto != null) {
Intent intent = new Intent();
intent.setClass(getApplicationContext(), FullscreenView.class);
startActivity(intent);
}
}
나는 호출 할 수 없습니다 getApplicationContext()
와 startActivity()
내가 정적 컨텍스트에서이기 때문에. 그러나 같은 Overlay 클래스에서 호출하려면 정적 메서드가 필요합니다 MainView.startFullscreen()
.
간단히 말해 : 비 활동 클래스에서 활동을 시작하려면 어떻게해야합니까?
귀하의 onTap
재정은 수신 MapView
되는 당신이를 얻을 수 있습니다 Context
:
@Override
public boolean onTap(GeoPoint p, MapView mapView)
{
// ...
Intent intent = new Intent();
intent.setClass(mapView.getContext(), FullscreenView.class);
startActivity(intent);
// ...
}
onTap ()에서 컨텍스트를 얻은 후에는 다음을 수행 할 수도 있습니다.
Intent myIntent = new Intent(mContext, theNewActivity.class);
mContext.startActivity(myIntent);
이것이 좋은 습관인지 아닌지는 모르겠지만 casting a Context object to an Activity object compiles fine.
이 시도: ((Activity) mContext).startActivity(...)
context
애플리케이션 ExampleContext
의 컨텍스트를 보유 할 애플리케이션 say 를 정의한 다음이를 사용하여 다음과 같은 활동을 인스턴스화 할 수 있습니다.
var intent = new Intent(Application.ApplicationContext, typeof(Activity2));
intent.AddFlags(ActivityFlags.NewTask);
Application.ApplicationContext.StartActivity(intent);
이 코드는 C#
MonoDroid를 사용할 때 작성 되었지만 Java
. ApplicationContext
이 스레드 에서 모양 을 만드는 방법
이것이 내가 만든 방법입니다. Application Class
[Application]
public class Application : Android.App.Application, IApplication
{
public Application(IntPtr handle, JniHandleOwnership transfer) : base(handle, transfer)
{
}
public object MyObject { get; set; }
}
참고 URL : https://stackoverflow.com/questions/4298225/how-can-i-start-an-activity-from-a-non-activity-class
'code' 카테고리의 다른 글
Tensorflow 텐서 차원 (모양)을 정수 값으로 얻는 방법은 무엇입니까? (0) | 2020.11.04 |
---|---|
SQL Server에서 날짜 플로어 (0) | 2020.11.04 |
c #의 iif에 해당 (0) | 2020.11.03 |
함수를 사용하여 두 날짜 사이의 날짜 목록 가져 오기 (0) | 2020.11.03 |
자신 만의 제곱근 함수 작성 (0) | 2020.11.03 |