带有YouTubeBaseActivity的getSupportActionBar

问题描述 投票:11回答:2

我正在尝试在我的应用中播放youtube视频。我知道可以通过将活动扩展为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来访问工具栏的简便方法。

我做错什么了吗?

谢谢!

android android-youtube-api
2个回答
35
投票

[YouTubeBaseActivity extends Activity,(例如,与YouTubeBaseActivity相反),因此Activity方法不存在。]]

[您可以尝试使类扩展AppCompatActivity,并在通常使用getSupportActionBar()的任何地方使用AppCompatActivity

编辑:

将以下内容代替YouTubePlayerSupportFragment添加到您的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"/> 中的它>

onCreate()

我不希望将我已经完成的代码片段化,只是添加带有后退按钮的工具栏。所以我想出了一种简单的方法。

在布局xml中,我添加了一个看起来像工具栏的TextView。这是Textview的代码。另外,您需要在可绘制文件夹中添加矢量资产(后退图标)

Activity

并且只需在textview上添加onclicklistener以供后按

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


0
投票

我不希望将我已经完成的代码片段化,只是添加带有后退按钮的工具栏。所以我想出了一种简单的方法。

在布局xml中,我添加了一个看起来像工具栏的TextView。这是Textview的代码。另外,您需要在可绘制文件夹中添加矢量资产(后退图标)

© www.soinside.com 2019 - 2024. All rights reserved.