- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个评级栏,它应该根据登录的用户显示单个用户的评级平均值。用户可以通过写入评级节点下的数据库来对另一个用户进行评级,如下所示
已评分的用户位于“评分者”节点下。请注意“-LxW7A......”是随机生成的 key 。要查看用户的评级(如果他被评级多次),我使用下面的代码来获取评级总和,并将其除以用户被评级的总次数以获得平均值
FirebaseUser user=mAuth.getCurrentUser();
String userId=user.getUid();
DatabaseReference refund =
FirebaseDatabase.getInstance().getReference("ratings");
Query query=refund.orderByChild("ratee").equalTo(userID);
final RatingBar ratingBar=(RatingBar)findViewById(R.id.ratingBar) ;
query.addValueEventListener(new ValueEventListener() {
int count=0;
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String rating=dataSnapshot.child("rater").getValue(String.class);
if (rating==null){Toast.makeText(getApplicationContext(),"empty ",Toast.LENGTH_SHORT).show();}else{
count=count+Integer.valueOf(rating);
double a = dataSnapshot.child("kutaPoints").getValue(double.class);
totalpointsused =+ a;
double tots=(double)count;
double result=totalpointsused/tots;
float abc=(float)result;
Toast.makeText(getApplicationContext(),""+abc,Toast.LENGTH_SHORT).show();
ratingBar.setRating(abc);
}}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
但是上面的代码不起作用,评级栏中不显示任何内容,并且显示空的 toast。
最佳答案
当您使用以下查询时:
Query query=refund.orderByChild("ratee").equalTo(userID);
这意味着您在 onDataChange()
方法中作为参数获取的 DataSnapshot
对象包含结果列表。即使只有一个结果,正如我在屏幕截图中看到的那样,列表也将包含一个元素。因此,当谈论列表时,要获取元素,我们需要迭代列表。因此,请检查以下代码行:
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long count = 0;
for(DataSnapshot ds : dataSnapshot.getChildren()) {
long ratingg = ds.child("ratingg").getValue(Long.class);
count = count + ratingg;
}
long avarage = count / dataSnapshot.getChildrenCount();
Log.d("TAG", "avarage: " + avarage);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
query.addListenerForSingleValueEvent(valueEventListener);
假设所有 4 个用户的 ratingg
属性值均设置为 4
,则 logcat 中的结果将是:
avarage: 4
关于java - 如何从 firebase 读取并在评级栏中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553052/
我在让我的操作栏显示图标时遇到问题。它显示了我在溢出菜单中设置的文本/标题(三个点),但没有任何操作。这是我的代码,我错过了什么? MainActivity.java public class Mai
我正在尝试在 android 中制作一个动态操作栏,现在我正在尝试像这样在操作栏中进行搜索。 http://developer.android.com/images/ui/actionbar-sear
我正在编写 uiautomator 测试,但我很难弄清楚如何单击我的操作栏图标。 如果我的操作是“始终”显示,则很容易找到并点击。 如果我的操作是显示“从不”,我必须单击菜单,然后从菜单中单击。先点击
我有一个正在寻找特定 URI 的重写规则。当它匹配特定的 URL 时,它会使用正确的文件路径重写它,以便可以找到所需的内容。然后它将协议(protocol)更改为 HTTPS 并允许请求通过。 我有两
我正在为 android 中的 ActionBar 而苦苦挣扎。 这是我的问题:我的操作项没有显示在操作栏中,而是堆叠在操作溢出中,无论我做什么.. 我花了一天的时间寻找解决方案,但我似乎找不到缺少的
我的网络应用程序在 Tomcat 下运行,它非常密集地使用 AJAX 请求,在开发过程中我也必须密集地重新部署网络应用程序。重新部署后,我通常会简单地刷新页面,知道用户 session 已删除,但我总
我是一名优秀的程序员,十分优秀!