1

所以我有一个特定于平台的类,它实现了核心对象的接口。这个平台特定对象的一个​​实例被传递到主活动中。到目前为止,这似乎是有效的,但对于我的生活,我无法弄清楚 startActivity() 应该来自哪里。我看到多个类都有它,但我不知道我应该从哪一个继承。

这是我的平台特定类:

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);
}

}

我正在尝试这样做,以便在将正确的 URL 传递给该方法时将 Youtube 应用程序打开到特定视频。

老实说,我真的不知道自己在做什么。如果在这个问题的直接范围之外我会遇到任何问题,我想提个醒。

提前致谢。

4

2 回答 2

1

您可以使用Gdx.net.openURI(theYouTubeUri);哪个将在 YouTube 应用程序或他们的浏览器中打开视频,具体取决于他们的设备/默认值/选择。

如果你想使用你的接口方法,接口应该引用你的 Activity (AndroidApplication) 并从那里使用 startActivity。

于 2013-06-14T15:50:04.460 回答
1

我对 Gdx 没有任何经验,因此我会查看 @nEx.Software 的答案,以了解似乎对该库有意义的解决方案。如果您想使用startActivity(),希望这可以帮助:

startActivity()Context 类中的一个方法,Activity 从中扩展。鉴于您的代码,您可以考虑使用两种技术来启动您的意图:

  1. 添加ContextActivity作为您的actionviewIntent方法的参数并使用context.startActivity(intent).
  2. 在您的 Activity 类中创建一个方法,该方法将意图作为参数并startActivity使用它进行调用。返回它创建的意图并在actionviewIntent您的 Activity 中实现将调用的某些内容actionviewIntent以及您启动 Activity 的新方法。

我在第一种技术上取得了很大的成功,我认为它是两者中的清洁剂,但如果你经常为不同的动作这样做,第二种将提供一个很好的可重用方法。希望这可以帮助!

于 2013-06-14T15:55:40.177 回答