如何在 Firebase 的评分栏中显示评分?
How to display rating in ratingbar from Firebase?
如何基于Firebase在评分栏中显示评分?我已成功将它的评分上传到 Firebase。
下面的代码显示了我如何将基于评级栏的评级上传到成功运行的 Firebase。
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: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference.
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) {
}
});
调用 onRatingChanged()
时,您需要使用 ratingRef
.
将结果保存到数据库中
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
。
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) { }
});
如何基于Firebase在评分栏中显示评分?我已成功将它的评分上传到 Firebase。
下面的代码显示了我如何将基于评级栏的评级上传到成功运行的 Firebase。
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: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference.
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) {
}
});
调用 onRatingChanged()
时,您需要使用 ratingRef
.
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
。
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) { }
});