android - 检查一个值是否为空
问题描述
在我的应用程序中,注册用户成功添加了文章评论。
例如,请参阅此屏幕截图。
现在我想在 recyclerview 中阅读并显示这些评论。在此之前,我想检查特定文章是否有评论。如果不是,那么我应该使 texview 可见,说明该特定文章没有评论。新闻(我从 Google News Api 获得)没有 id,所以我使用的是 newsTitle,如图所示。
我写了这段代码。
public class DisplayComments extends AppCompatActivity {
ArrayList<Comment> commentArrayList;
Toolbar mToolbar;
private DatabaseReference mDatabase;
private Intent i;
private String newsTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_comments);
mToolbar = (Toolbar) findViewById(R.id.display_comments_app_bar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Display Comments");
mDatabase = FirebaseDatabase.getInstance().getReference();
commentArrayList = new ArrayList<>();
i = getIntent();
newsTitle = i.getStringExtra("newsTitle");
mDatabase = FirebaseDatabase.getInstance().getReference();
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
mDatabase = FirebaseDatabase.getInstance().getReference();
Query query = mDatabase.child("comments").child("newsTitle").equalTo(newsTitle);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
Toast.makeText(DisplayComments.this,"There are comments posted",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(DisplayComments.this,"There are no comments posted",Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
但是,我总是得到即使有评论的文章也没有发表评论。如何进行一个好的查询来检查是否有评论?
谢谢,
西奥。
解决方案
您需要查询中文章的 orderByChild('newsTitle')。像这样修复它:
Query query = mDatabase.child("comments").orderByChild("newsTitle").equalTo(newsTitle);
上面的代码将newsTitle
与您给定的值相匹配。
您的代码试图进行查询但未定义条件。
推荐阅读
- javascript - 我的代码有效但与答案不同?只要它工作就重要吗?Javascript
- spring - IntelliJ 中的 Gradle Spring Boot 应用程序无法识别 WEB-INF 文件夹中的 Web 资源
- azure - Azure Blob 触发器函数应用程序:为多个 Blob 上传运行相同的实例
- sql - 查询具有相关模型外键的相关模型(在一个优化查询中)
- mysql - 在 MySQL 中,如何根据另一个表中的更新列来更改表中列的值?
- android - 如何使用套接字将浮点数组发送到服务器
- algorithm - 如何在 dart-flutter 中对这样的时间列表进行排序 [ 2:00 AM , 10:00 AM , 6:00 PM ]?
- r - 我想在 R 中安装旧版本包
- react-native - 用于 tabBarLabel 的 React Navigation v5 更新本地化不起作用
- python - 如何使用包含字符串值的列表处理 Pandas 数据框列,获取唯一单词