我正在尝试在我的应用程序上播放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来访问工具栏。
我做错什么了吗?
谢谢!
最佳答案
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"/>
在
onCreate()
的Activity
中访问它,就像访问任何其他静态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();
}
}
}