活动 2 中 Youtube 播放器中活动 1 的字符串
String from Activity1 in Youtube player in Activity2
在 youtube 中 api 你得到以下代码
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("C0DPdy98e4c"); // Plays https://www.youtube.com/watch?v=C0DPdy98e4c
}
}
因为我想制作很多指向 youtube 的链接,所以我不希望每个 youtube 视频都有一个布局。我试图在 Activity1 中制作一个字符串,该字符串应该将 youtube 视频链接传输到 Activiy2。
Activity1 发送到 Activity2
private void button_les1Click()
{
startActivity(new Intent("company.app.activity2"));
}
public void onClick(View v) {
Intent videoId = new Intent(this, les_video.class);
videoId.putExtra("C0DPdy98e4c", videoId); //Input Youtube link here
switch (v.getId())
{
case R.id.button_les1:
button_les1Click();
break;
}
startActivity(videoId);
finish();
}
这是不起作用的部分,它无法检测字符串值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String videolink = getIntent().getExtras().getString("videoId");
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_activity2);
youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(Config.YOUTUBE_API_KEY, this);
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.loadVideo(videolink); // Play link from videolink string
}
}
您可能注意到我仍在学习这门很棒的语言,因为我认为这只是我现在不知道如何使用字符串的问题。有人可以指出为什么字符串不起作用吗?
您误用了 putExtra.
putExtra
使用键值对。键是一个字符串,充当值的标识符或索引。该值可以是 String, int, boolean, etc.
密钥应存储在 XML 中或作为常量存储在应用程序中的某处。
换句话说,它应该是这样的:
public static final String KEY_VIDEO_LINK = "video_link";
//...
videoId.putExtra(KEY_VIDEO_LINK, "C0DPdy98e4c"); //assuming C0DPdy98e4c is the
//String that you want to send to the next Activity.
而在Activity2中,以常量为key读取:
String videoLink = getIntent().getExtras().getString(Activity1.KEY_VIDEO_LINK);
在 youtube 中 api 你得到以下代码
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.cueVideo("C0DPdy98e4c"); // Plays https://www.youtube.com/watch?v=C0DPdy98e4c
}
}
因为我想制作很多指向 youtube 的链接,所以我不希望每个 youtube 视频都有一个布局。我试图在 Activity1 中制作一个字符串,该字符串应该将 youtube 视频链接传输到 Activiy2。
Activity1 发送到 Activity2
private void button_les1Click()
{
startActivity(new Intent("company.app.activity2"));
}
public void onClick(View v) {
Intent videoId = new Intent(this, les_video.class);
videoId.putExtra("C0DPdy98e4c", videoId); //Input Youtube link here
switch (v.getId())
{
case R.id.button_les1:
button_les1Click();
break;
}
startActivity(videoId);
finish();
}
这是不起作用的部分,它无法检测字符串值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String videolink = getIntent().getExtras().getString("videoId");
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_activity2);
youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(Config.YOUTUBE_API_KEY, this);
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.loadVideo(videolink); // Play link from videolink string
}
}
您可能注意到我仍在学习这门很棒的语言,因为我认为这只是我现在不知道如何使用字符串的问题。有人可以指出为什么字符串不起作用吗?
您误用了 putExtra.
putExtra
使用键值对。键是一个字符串,充当值的标识符或索引。该值可以是 String, int, boolean, etc.
密钥应存储在 XML 中或作为常量存储在应用程序中的某处。
换句话说,它应该是这样的:
public static final String KEY_VIDEO_LINK = "video_link";
//...
videoId.putExtra(KEY_VIDEO_LINK, "C0DPdy98e4c"); //assuming C0DPdy98e4c is the
//String that you want to send to the next Activity.
而在Activity2中,以常量为key读取:
String videoLink = getIntent().getExtras().getString(Activity1.KEY_VIDEO_LINK);