使用android studio的FirebaseRecyclerAdapter适配器无法将字符串转换为对象
当我使用FirebaseRecyclerAdapter类时,会出现以下错误: 添加这两行代码后,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型,它会崩溃 recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager) 我的代码是使用android studio的FirebaseRecyclerAdapter适配器无法将字符串转换为对象,android,firebase-realtime-database,Android,Firebase Realtime Database,当我使用FirebaseRecyclerAdapter类时,会出现以下错误: 添加这两行代码后,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型,它会崩溃 recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager) 我的代码是 import android.content.Context; im
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.photoblog.kyrillos.blog.Model.Users;
import com.photoblog.kyrillos.blog.R;
import de.hdodenhof.circleimageview.CircleImageView;
public class HomeActivity extends AppCompatActivity {
private Toolbar homeToolbar;
private FirebaseAuth mAuth;
private DatabaseReference mDatabase;
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
homeToolbar = findViewById(R.id.homeToolbar);
setSupportActionBar(homeToolbar);
getSupportActionBar().setTitle("Home");
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Users,BlogViewHolder > adapter =
new FirebaseRecyclerAdapter<Users, BlogViewHolder >(
Users.class,
R.layout.blog_row,
BlogViewHolder .class,
mDatabase){
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, Users model, int position) {
viewHolder.setUserImage(HomeActivity.this,model.getImage());
viewHolder.setUserName(model.getName());
viewHolder.setPostImage(HomeActivity.this,model.getPostImage());
viewHolder.setPostDescription(model.getPostDescription());
}
};
recyclerView.setAdapter(adapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder{
View mView;
public BlogViewHolder (@NonNull View itemView) {
super(itemView);
mView = itemView;
}
public void setUserImage(Context context,String url){
CircleImageView imageView = mView.findViewById(R.id.postUserImageView);
Glide.with(context)
.load(url)
.into(imageView);
}
public void setUserName(String userName){
TextView view = mView.findViewById(R.id.postUserNameView);
view.setText(userName);
}
public void setPostImage(Context context,String postImage){
ImageView postImageView = mView.findViewById(R.id.postImageView);
Glide.with(context)
.load(postImage)
.into(postImageView);
}
public void setPostDescription(String postDescription){
TextView postTextView = mView.findViewById(R.id.postTextView);
postTextView.setText(postDescription);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_add){
startActivity(new Intent(HomeActivity.this,PostActivity.class));
} else if (item.getItemId() == R.id.action_settings) {
startActivity(new Intent(HomeActivity.this,SettingsActivity.class));
} else if (item.getItemId() == R.id.action_logOut) {
mAuth.signOut();
startActivity(new Intent(HomeActivity.this,LoginActivity.class));
finish();
}
return super.onOptionsItemSelected(item);
}
}
对不起,伙计们,我找到了错误的确切位置。 而是这一行
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
我应该写这个
无论如何,感谢您。您在哪一行出现此错误?它没有给我唯一的行,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");