2013-06-14 7 views
1

그래서 핵심 객체의 인터페이스를 구현하는 플랫폼 특정 클래스가 있습니다. 이 플랫폼 특정 객체의 인스턴스가 주 활동으로 전달됩니다. 지금까지는 작동하는 것처럼 보이지만 나에게있어서 startActivity()가 어디에서 왔는지를 알 수는 없습니다. 여러 클래스에 있지만 여러 클래스에서 상속 받겠다 고합니다. 내가 올바른 URL이 메서드에 전달 될 때 특정 비디오로 유튜브 응용 프로그램을 열 수 있도록 그것을 만들려고startActivity (Intent intent)가 Android LibGDX 프로젝트의 Android 버전에서 작동하지 않습니다.

import android.content.Intent; 
import android.net.Uri; 

public class PlatformObject implements PlatformSpecificImplentationable 
{ 

public void actionviewIntent(String designedIntent) 
{ 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse(designedIntent)); 
    startActivity(intent); 
} 

} 

:

은 여기 내 플랫폼 고유의 클래스입니다.

솔직히, 나는 정말로 내가하는 일을 모른다. 이 문제의 직접적인 범위를 벗어나는 문제가 발생하면 머리를 맞춰주세요.

미리 감사드립니다.

답변

1

기기/기본값/선택에 따라 YouTube 앱이나 브라우저에서 동영상을 열 수있는 Gdx.net.openURI(theYouTubeUri);을 사용할 수 있습니다.

인터페이스 접근 방식을 사용하려면 인터페이스에 Activity (AndroidApplication)에 대한 참조가 있어야하며 거기에서 startActivity를 사용해야합니다.

1

저는 Gdx에 대한 경험이 없으므로 @ nEx.Software의 대답을 검토해 볼 것입니다. startActivity()을 사용하려면 다음을 참조하십시오.

startActivity()은 Activity가 확장되는 Context class의 메소드입니다. 당신이 당신의 목적은 코드를 주어진 시작하는 고려할 수 두 가지 기술은

  1. actionviewIntent 방법에 대한 인수로 Context 또는 Activity을 추가하고 context.startActivity(intent)를 사용하여 startActivity를 호출 ...입니다.
  2. 인 텐트를 인수로 사용하여 startActivity을 호출하는 메소드를 액티비티 클래스에 작성하십시오. actionviewIntent을 작성하여 활동에 작성하고 구현 한 내용을 actionviewIntent으로 호출하고 활동을 시작하는 새 메소드를 호출하십시오.

저는 첫 번째 기술로 많은 성공을 거두었습니다. 두 가지를 더 잘 처리 할 수 ​​있다고 생각하지만 두 번째 방법은 다른 작업에 대해이 작업을 많이 수행하는 경우 재사용 가능한 좋은 방법을 제공합니다. 희망이 도움이!