android - 错误:找不到合适的方法 'setQuery(com.google.firebase.DatabaseReference
问题描述
我正在聊天应用程序中构建 FindFriendActivity,我正在使用 Firebase UI,但在此特定行上出现错误:
.setQuery(userRef, Contacts.class)
无法解析方法'setQuery(com.google.firebase.DatabaseReference,java.lang.class)'
这些是我在构建时遇到的错误:
error: no suitable method found for setQuery(DatabaseReference,Class<com.example.chatApp.Model.Contacts>)
.setQuery(userRef, Contacts.class)
^
method Builder.setQuery(Query,SnapshotParser<android.provider.ContactsContract.Contacts>) is not applicable
(argument mismatch; Class<com.example.chatApp.Model.Contacts> cannot be converted to SnapshotParser<android.provider.ContactsContract.Contacts>)
method Builder.setQuery(Query,Class<android.provider.ContactsContract.Contacts>) is not applicable
(argument mismatch; Class<com.example.chatApp.Model.Contacts> cannot be converted to Class<android.provider.Contacts
error: cannot find symbol
FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter = new
^
symbol: constructor (FirebaseRecyclerOptions<Contacts>)
error: incompatible types: FirebaseRecyclerOptions<android.provider.ContactsContract.Contacts> cannot be converted to FirebaseRecyclerOptions<com.example.chatApp.Model.Contacts>
FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) {
^
这是我的代码:
FindFriendActivity.java
public class FindFriendActivity extends AppCompatActivity {
private Toolbar mToolbar;
private RecyclerView findFriendsRecyclerList;
private DatabaseReference userRef;
private FirebaseAuth mAuth;
private String currentUserId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find_friend);
userRef = FirebaseDatabase.getInstance()
.getReference()
.child("Users");
findFriendsRecyclerList = (RecyclerView)findViewById(R.id.find_friends_recycler_list);
findFriendsRecyclerList.setLayoutManager(new LinearLayoutManager(this));
mToolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle(R.string.find_friend);
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerOptions<ContactsContract.Contacts> options = new
FirebaseRecyclerOptions.Builder<ContactsContract.Contacts>()
.setQuery(userRef, Contacts.class)
.build();
FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter = new
FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull FindFriendViewHolder holder, final int position, @NonNull Contacts model) {
holder.userName.setText(model.getName());
holder.userStatus.setText(model.getStatus());
Picasso.get().load(model.getImage()).placeholder(R.drawable.avatar)
.into(holder.profileImage);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String visitUserId = getRef(position).getKey();
Intent profileIntent = new Intent(FindFriendActivity.this, ProfileInfoActivity.class);
profileIntent.putExtra("visitUserId", visitUserId);
startActivity(profileIntent);
}
});
}
@NonNull
@Override
public FindFriendViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.users_display_layout,viewGroup, false);
FindFriendViewHolder viewHolder = new FindFriendViewHolder(view);
return viewHolder;
}
};
findFriendsRecyclerList.setAdapter(adapter);
adapter.startListening();
}
public static class FindFriendViewHolder extends RecyclerView.ViewHolder
{
TextView userName, userStatus;
CircleImageView profileImage;
public FindFriendViewHolder(@NonNull View itemView) {
super(itemView);
userName = itemView.findViewById(R.id.users_profile_name);
userStatus = itemView.findViewById(R.id.users_status);
profileImage = itemView.findViewById(R.id.users_profile_image);
}
}
}
解决方案
我认为你有一个错字,只需ContactsContract
删除
FirebaseRecyclerOptions<ContactsContract.Contacts> options = new
FirebaseRecyclerOptions.Builder<ContactsContract.Contacts>()
.setQuery(userRef, Contacts.class)
.build();
推荐阅读
- python - python json模块和子类化dict
- python - python读取文件utf-8解码问题
- android - 主要活动的状态栏颜色发生变化,但其他活动状态栏颜色保持不变
- python - 如何通过当前文件中的 Python 中的字符串名称实例化类?
- php - 如何在 Wordpress API 回调中访问 Yoast SEO 标签
- android - xml 二进制文件应用程序因错误膨胀导航视图而崩溃的错误
- postgresql - Postgresql join same table
- excel - 公式删除excel中两个下划线之间的文本?
- angular - Angular 2 HttpClient 需要 .subscribe
- class - 如何创建 Delphi 类库