我正在尝试在我的应用程序上播放 YouTube 视频。我知道这可以通过将 Activity 扩展为 YouTubeBaseActivity 来实现,这样做我无权访问我的工具栏。
mActionBar = (Toolbar) findViewById(R.id.toolbar);
if (mActionBar != null)
{
setSupportActionBar(mActionBar);
}
getSupportActionBar().setTitle(getResources().getString(R.string.youtubetitle));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
我收到 getSupportActionbar 无法解析的消息。有没有一种简单的方法可以通过扩展 YouTubeBaseActivity Activity 来访问工具栏。
我做错了什么吗?
谢谢!
最佳答案
YouTubeBaseActivity
extends Activity
,(与例如 AppCompatActivity
相反),因此 getSupportActionBar()
方法不存在。
您可以尝试让您的类扩展AppCompatActivity
,并使用 YouTubePlayerSupportFragment
而是您通常使用 YouTubePlayerView
的任何地方。
编辑:
将以下内容添加到您的layout
文件中,代替 YouTubePlayerView
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在 Activity
的 onCreate()
中访问它,就像访问任何其他静态 Fragment
public class CustomYouTubeActivity extends AppCompatActivity implements YouTubePlayer.OnInitialisedListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragments_demo);
YouTubePlayerSupportFragment frag =
(YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_fragment);
frag.initialize(DeveloperKey.DEVELOPER_KEY, this);
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player,
boolean wasRestored) {
if (!wasRestored) {
//I assume the below String value is your video id
player.cueVideo("nCgQDjiotG0");
}
@Override
public void onInitializationFailure (YouTubePlayer.Provider provider, YouTubeInitializationResult error) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(getString(R.string.error_player), errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
}
}
关于android - getSupportActionBar 与 YouTubeBaseActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61433425/