首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示等级等级从火基?

如何显示等级等级从火基?
EN

Stack Overflow用户
提问于 2017-10-09 11:40:20
回答 1查看 4.7K关注 0票数 1

如何在基于Firebase的评级栏中显示评级?我已经成功地将它的评级上传到Firebase上。

下面的代码显示了我如何将基于评等条的评等上载到成功工作的Firebase。

代码语言:javascript
复制
ratingRef.child("Rating").setValue(ratingstar);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    @Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        Toast.makeText(UploadReviewAndRating.this, "Stars: " + (int)rating, Toast.LENGTH_SHORT).show();
    }
});

Intent intent = new Intent(UploadReviewAndRating.this, ViewProfile.class);
startActivity(intent);

下面的代码显示了我如何显示无法工作的评等栏。当我运行应用程序时,应用程序崩溃并显示错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int java.lang.Integer.intValue()‘。

代码语言:javascript
复制
ratingRef.child("Ratings").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        int rating = dataSnapshot.getValue(int.class);
        ratingBar.setRating(rating);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-09 13:35:00

当调用onRatingChanged()时,需要使用ratingRef将结果保存到数据库中。

代码语言:javascript
复制
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
    @Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
        if (fromUser) ratingRef.child("Rating").setValue(rating);
    }
});

然后将侦听器附加到同一个ratingRef子节点以加载评等,同时还检查数据库(dataSnapshot)返回的结果是否为null

代码语言:javascript
复制
ratingRef.child("Rating").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if (dataSnapshot != null && dataSnapshot.getValue() != null) {
            float rating = Float.parseFloat(dataSnapshot.getValue().toString());
            ratingBar.setRating(rating);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) { }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46645568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档