我的MainActivity中有两个按钮,这些按钮有OnLongClickListener,它们都启动另一个名为Pop.class的活动。所以一切正常。我想要的是发送一个与下一个活动中的按钮相对应的URL。
因此,当用户按下MainActivity活动中的按钮时,他会通过Pop活动上的应用程序带来,当点击Pop活动中的按钮时,他将被重定向到YouTube应用上的YouTube视频,对应于前一个按钮(此处为b26或b27)已“声明”的网址。
问题是我不知道如何使我的字符串成为Uri.parse()方法的真实URL。 我也使用了一个字符串,因为我想在每个按钮中添加不同的URL。
为此,我使用了putExtra和getExtra,但我不明白为什么字符串url不能正常工作b27按钮,所以我没有修改b26代码。 :(
这就是我向你求助的原因
这是 MainActivity 活动:
Button b26 = (Button) findViewById(R.id.b26);
b26.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
if (SoundBuildingOnFiire.isPlaying()) {
SoundBuildingOnFiire.seekTo(0);
} else {SoundBuildingOnFiire.start();}}});
b26.setOnLongClickListener(
new Button.OnLongClickListener() {
public boolean onLongClick(View v) {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
startActivity(new Intent(MainActivity.this, Pop.class));
return true;}});
Button b27 = (Button) findViewById(R.id.b27);
b27.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
if (SoundJackson.isPlaying()) {
SoundJackson.seekTo(0);
} else {SoundJackson.start();}}});
b27.setOnLongClickListener(
new Button.OnLongClickListener() {
public boolean onLongClick(View v) {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
startActivity(new Intent(MainActivity.this, Pop.class));
getIntent().putExtra("SoundName", "https://www.youtube.com/");
return true;}});
}
这是 Pop 活动:
public class Pop extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
final String SoundName = getIntent().getStringExtra("SoundName");
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int) (width * .8), (int) (height * .4));
TextView txtLabel = (TextView)findViewById(R.id.textView);
txtLabel.setText("En savoir plus sur ce Son");
Button button = (Button)findViewById(R.id.youtube);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent viewIntent =
new Intent("android.intent.action.VIEW",
Uri.parse(SoundName));
startActivity(viewIntent);
}
});
}
}
感谢您的时间
答案 0 :(得分:0)
这是因为您没有将URL传递给POP活动,并且每次都为空。
更改
startActivity(new Intent(MainActivity.this, Pop.class));
getIntent().putExtra("SoundName", "https://www.youtube.com/");
到
Intent intent = new Intent(MainActivity.this, Pop.class);
intent.putExtra("SoundName", "https://www.youtube.com/");
startActivity(intent);
答案 1 :(得分:0)
对您的代码应用以下更改,它应该可以正常工作
主要活动
b27.setOnLongClickListener(
new Button.OnLongClickListener() {
public boolean onLongClick(View v) {
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);
String url="https://youtube.com";
Intent intent= new Intent(MainActivity.this,Pop.class);
intent.putExtra("SoundName", url);
startActivity(intent);
return true;}});
在你的流行活动中
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent viewIntent =getIntent();
String url=viewIntent.getStringExtra("SoundName");
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});