getSupportActionBar 与 YouTubeBaseActivity
getSupportActionBar with YouTubeBaseActivity
我正在尝试在我的应用程序上播放 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。有没有一种通过扩展 activity YouTubeBaseActivity.
来访问工具栏的简单方法
我做错了什么吗?
谢谢!
YouTubeBaseActivity
extends Activity
(与 AppCompatActivity
相对),因此 getSupportActionBar()
方法不存在。
您可以尝试让您的 class 扩展 AppCompatActivity
,并在通常使用 YouTubePlayerView
.
的地方使用 YouTubePlayerSupportFragment
编辑:
将以下内容添加到您的 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();
}
}
}
我对将我已经完成的代码移动到片段不感兴趣,只是为了添加一个带有后退按钮的工具栏。所以我想出了一个简单的方法。
在布局中 xml 我添加了一个看起来像工具栏的 TextView。这是 Textview 的代码。此外,您需要在可绘制文件夹中添加矢量资源(后退图标)
<TextView
android:layout_width="match_parent"
android:layout_height="56dp"
android:id="@+id/actionbartitle"
android:background="@color/colorPrimary"
android:maxLines="1"
android:textSize="16sp"
android:textStyle="bold"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:text="Go Back"
android:gravity="center_vertical"
android:drawablePadding="@dimen/padding_8"
android:drawableLeft="@drawable/ic_back"
android:textColor="@android:color/white"
android:ellipsize="end"/>
并且只需在文本视图上添加 onclicklistener 以进行后退
val actionbarTitle = findViewById<TextView>(R.id.actionbartitle)
actionbarTitle.setOnClickListener {
super.onBackPressed()
}
这是最终结果的样子!喝杯咖啡:)
我正在尝试在我的应用程序上播放 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。有没有一种通过扩展 activity YouTubeBaseActivity.
来访问工具栏的简单方法我做错了什么吗?
谢谢!
YouTubeBaseActivity
extends Activity
(与 AppCompatActivity
相对),因此 getSupportActionBar()
方法不存在。
您可以尝试让您的 class 扩展 AppCompatActivity
,并在通常使用 YouTubePlayerView
.
YouTubePlayerSupportFragment
编辑:
将以下内容添加到您的 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();
}
}
}
我对将我已经完成的代码移动到片段不感兴趣,只是为了添加一个带有后退按钮的工具栏。所以我想出了一个简单的方法。
在布局中 xml 我添加了一个看起来像工具栏的 TextView。这是 Textview 的代码。此外,您需要在可绘制文件夹中添加矢量资源(后退图标)
<TextView
android:layout_width="match_parent"
android:layout_height="56dp"
android:id="@+id/actionbartitle"
android:background="@color/colorPrimary"
android:maxLines="1"
android:textSize="16sp"
android:textStyle="bold"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:text="Go Back"
android:gravity="center_vertical"
android:drawablePadding="@dimen/padding_8"
android:drawableLeft="@drawable/ic_back"
android:textColor="@android:color/white"
android:ellipsize="end"/>
并且只需在文本视图上添加 onclicklistener 以进行后退
val actionbarTitle = findViewById<TextView>(R.id.actionbartitle)
actionbarTitle.setOnClickListener {
super.onBackPressed()
}
这是最终结果的样子!喝杯咖啡:)