简体   繁体   English

如何从 firebaseDatabase 获取 Url 作为字符串文本传递给另一个活动作为 url?

[英]How to get Url from firebaseDatabase as string text pass to another activity as url?

I am trying to get url from text obtained from firebase data base and pass to another actvity and play it in videoview,我试图从从 firebase 数据库获得的文本中获取 url 并传递给另一个活动并在 videoview 中播放,

in my adapter在我的适配器中

holder.animPlayer.setText(mAnmList.get(position).getVideourl());

in my firstActivity在我的第一个活动中

 private void data() {

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference smsRef = database.getReference("Movies");
    smsRef.keepSynced(true);
    smsRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            for (DataSnapshot newsSnapshot : dataSnapshot.getChildren()) {
                TopItems item = newsSnapshot.getValue(TopItems.class);
                mSmsList.add(item);


            }

            mSmsAdapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

}

@Override
public void onMovieClick(AnimationItem animationItem, ImageView animImage) {

    final String videoUrl = animationItem.getVideourl();

    Intent intentAnimation = new Intent(MainActivity.this, MovieDetails.class);

    //putextra
    
    intentAnimation.putExtra("Video", videoUrl);
}

in my secondActivity在我的第二个活动中

moviePlayer = findViewById(R.id.player_view);
    Bundle b = getIntent().getExtras();
    String id = b.getString("Video");
    moviePlayer.setVideoPath(id);
    ProgressBar progressBar = new ProgressBar(MovieDetails.this);
    MediaController mediaController = new MediaController(MovieDetails.this);
    mediaController.setAnchorView(moviePlayer);
    moviePlayer.setMediaController(mediaController);
    moviePlayer.requestFocus();

    moviePlayer.start();

in AnimationItem在动画项目中

private String videourl;

public AnimationItem( String videourl) {
    
    this.videourl = videourl;
}

public AnimationItem() {

}

public String getVideourl() {
    return videourl;
}

public void setVideourl(Uri videourl) {
    this.videourl = String.valueOf(videourl);
}

Error错误

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.smschecker, PID: 24016 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.smschecker/com.example.smschecker.MovieDetails}: java.lang.NullPointerException: uriString E/AndroidRuntime:致命异常:主进程:com.example.smschecker,PID:24016 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.smschecker/com.example.smschecker.MovieDetails}:java.lang。空指针异常:uriString
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2865) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2955) at android.app.ActivityThread.-wrap12(Unknown Source:0)在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2865) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2955) 在 android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)在 android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)在 android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6719)在 android.app.ActivityThread.main(ActivityThread.java:6719)
at java.lang.reflect.Method.invoke(Native Method)在 java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:449)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:449)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: uriString at android.net.Uri$StringUri.(Uri.java:476)引起:java.lang.NullPointerException: uriString at android.net.Uri$StringUri.(Uri.java:476)
at android.net.Uri$StringUri.(Unknown Source:0)在 android.net.Uri$StringUri.(未知来源:0)
at android.net.Uri.parse(Uri.java:438)在 android.net.Uri.parse(Uri.java:438)
at android.widget.VideoView.setVideoPath(VideoView.java:248)在 android.widget.VideoView.setVideoPath(VideoView.java:248)
at com.example.smschecker.MovieDetails.iniViews(MovieDetails.java:131)在 com.example.smschecker.MovieDetails.iniViews(MovieDetails.java:131)
at com.example.smschecker.MovieDetails.onCreate(MovieDetails.java:95)在 com.example.smschecker.MovieDetails.onCreate(MovieDetails.java:95)

it crashes when i start secondActivity, help当我启动 secondActivity 时它崩溃了,帮助

In MovieDetails activity, change from moviePlayer.setVideoPath(id);MovieDetails活动中,从moviePlayer.setVideoPath(id);更改moviePlayer.setVideoPath(id); to moviePlayer.setVideoPath(Uri.parse(id));moviePlayer.setVideoPath(Uri.parse(id));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM