Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase RecyclerView数据库异常:使用泛型类型指示符错误_Java_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Java Firebase RecyclerView数据库异常:使用泛型类型指示符错误

Java Firebase RecyclerView数据库异常:使用泛型类型指示符错误,java,android,firebase,firebase-realtime-database,firebaseui,Java,Android,Firebase,Firebase Realtime Database,Firebaseui,我们非常接近在Android Studio中制作原型应用程序,但当我们切换到我们的一项活动时,我们总是会遇到一个持续的错误。有问题的活动基本上显示了CardView中的用户列表。我们得到的错误是com.firebase.database.databaseexception类java.util.HashMap,具有泛型类型参数,请改用泛型类型指示符。Firebase RecyclerView捕获的对象确实存储了hashmap,但我不知道这是否是问题所在。RecyclerView没有打印任何与has

我们非常接近在Android Studio中制作原型应用程序,但当我们切换到我们的一项活动时,我们总是会遇到一个持续的错误。有问题的活动基本上显示了CardView中的用户列表。我们得到的错误是
com.firebase.database.databaseexception类java.util.HashMap,具有泛型类型参数,请改用泛型类型指示符
。Firebase RecyclerView捕获的对象确实存储了hashmap,但我不知道这是否是问题所在。RecyclerView没有打印任何与hashmap相关的内容,它只是对象中的一个存储项。如果有人能帮忙,那就太好了。当您点击Firebase RecyclerView选项的初始化时,错误开始。如果有人能帮忙,我需要尽快修好,谢谢\

public class TutorDisplay extends BaseNavigationActivity {

    private RecyclerView tutorList;

    private DatabaseReference dataRef;

    private FirebaseRecyclerAdapter<Tutor, TutorDisplay.TutorViewHolder> TutorAdapator;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getLayoutInflater().inflate(R.layout.activity_tutor_display, frameLayout);
        setTitle("Tutors");

        //Establish Firebase connection
        //FirebaseDatabase myData = FirebaseDatabase.getInstance();
        dataRef = FirebaseDatabase.getInstance().getReference().child("Users");
        dataRef.keepSynced(true);

        tutorList = (RecyclerView) findViewById(R.id.tutorList);
        tutorList.setHasFixedSize(true);
        tutorList.setLayoutManager(new LinearLayoutManager(this));

        DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("Users");
        Query personsQuery = personsRef.orderByChild("type").startAt("Tutor").endAt("Tutor");
        FirebaseRecyclerOptions Options = new FirebaseRecyclerOptions.Builder<Tutor>().setQuery(personsQuery, Tutor.class).build();


        TutorAdapator = new FirebaseRecyclerAdapter<Tutor, TutorViewHolder>(Options) {
            @Override
            //sets the inputs in specified spots or AKA binds them to the card
            protected void onBindViewHolder(@NonNull TutorDisplay.TutorViewHolder holder, int position, @NonNull final Tutor model) {
                holder.setTutor(model.getName());
                holder.setRating(model.getRating());

                holder.btProfile.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // Convert the tutor into a parcel to send to the profile activity
                        Intent intent = new Intent(TutorDisplay.this, ProfileCard.class);

                        startActivity(intent);
                        finish();
                    }
                });
                holder.btMessage.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(TutorDisplay.this, ChatActivity.class));
                    }
                });
            }

            @NonNull
            @Override
            //creates a new view or Card holder
            public TutorDisplay.TutorViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                //creates a new view which is inherited from the parent view
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.tutor_card, parent, false);

                return new TutorDisplay.TutorViewHolder(view);
            }
        };

        //Start the Database and view
        //firebaseRecyclerAdapter.startListening();
        //create the Recycler view
        tutorList.setAdapter(TutorAdapator);
    }

public static class TutorViewHolder extends RecyclerView.ViewHolder {
        //create new view
        View mView;

        //UI elements
        Button btProfile;
        Button btMessage;
        Button btRate;

        //constructor
        public TutorViewHolder(View itemView) {
            super(itemView);
            mView = itemView;

            //initialize UI
            btProfile = (Button) mView.findViewById(R.id.profileButton);
            btMessage = (Button) mView.findViewById(R.id.messageButton);
            btRate = (Button) mView.findViewById(R.id.rateButton);
        }

        //sets the name of the Tutor
        public void setTutor(String name) {
            TextView tutorName = (TextView) 
mView.findViewById(R.id.tutorName);
            tutorName.setText(name);
        }

        //sets the rating of the Tutor
        public void setRating(float rating) {
            RatingBar starRating = (RatingBar) `enter code 
here`mView.findViewById(R.id.tutorRatingBar);
            starRating.setRating(rating);
        }
    }

@Override
    protected void onStart() {
        super.onStart();
          TutorAdapator.startListening();
        //Starts to get info from firebase


    }
}
公共类TutorDisplay扩展了BaseNavigationActivity{
私人垃圾回收站看护员;
私有数据库引用dataRef;
私人火基回收适配器TutorAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
GetLayoutFlater().充气(R.layout.activity\u tutor\u显示,frameLayout);
片名(“导师”);
//建立火基连接
//FirebaseDatabase myData=FirebaseDatabase.getInstance();
dataRef=FirebaseDatabase.getInstance().getReference().child(“用户”);
dataRef.keepSynced(true);
tutorList=(RecyclerView)findViewById(R.id.tutorList);
tutorList.setHasFixedSize(true);
tutorList.setLayoutManager(新的LinearLayoutManager(本));
DatabaseReference personsRef=FirebaseDatabase.getInstance().getReference().child(“用户”);
Query personsQuery=personsRef.orderByChild(“类型”).startAt(“导师”).endAt(“导师”);
FirebaseRecyclerOptions选项=新建FirebaseRecyclerOptions.Builder().setQuery(personQuery,Tutor.class).build();
TutorAdapator=新的FirebaseRecyclerAdapter(选项){
@凌驾
//在指定点设置输入或将其绑定到卡
受保护的无效onBindViewHolder(@NonNull TutorDisplay.TutorViewHolder,int位置,@NonNull final Tutor model){
setTutor(model.getName());
holder.setRating(model.getRating());
holder.btProfile.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//将导师转换为包裹,发送至档案活动
Intent Intent=新Intent(TutorDisplay.this、ProfileCard.class);
星触觉(意向);
完成();
}
});
holder.btMessage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startActivity(新意图(TutorDisplay.this、ChatActivity.class));
}
});
}
@非空
@凌驾
//创建新视图或卡夹
public TutorDisplay.TutorViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
//创建从父视图继承的新视图
View=LayoutFlater.from(parent.getContext()).flate(R.layout.tutor\u card,parent,false);
返回新的TutorDisplay.TutorViewHolder(视图);
}
};
//启动数据库并查看
//firebaseRecyclerAdapter.startListening();
//创建回收器视图
tutorList.setAdapter(TutorAdapator);
}
公共静态类TutorViewHolder扩展了RecyclerView.ViewHolder{
//创建新视图
视图视图;
//UI元素
按钮配置文件;
按钮信息;
按钮速率;
//建造师
公共TutorViewHolder(查看项目视图){
超级(项目视图);
mView=项目视图;
//初始化用户界面
btProfile=(按钮)mView.findviewbyd(R.id.profileButton);
btMessage=(按钮)mView.findviewbyd(R.id.messageButton);
btRate=(按钮)mView.findviewbyd(R.id.rateButton);
}
//设置导师的姓名
public void setTutor(字符串名称){
TextView tutorName=(TextView)
mView.findViewById(R.id.tutorName);
tutorName.setText(名称);
}
//设置导师的评分
公共评级(浮动评级){
RatingBar starRating=(RatingBar)`输入代码
这里是'mView.findViewById(R.id.tutorRatingBar);
星号。设定等级(等级);
}
}
@凌驾
受保护的void onStart(){
super.onStart();
TutorAdapator.startListening();
//开始从firebase获取信息
}
}

请发布一些相关代码,以便我们提供帮助。请添加用于显示数据的代码。我用codec编辑了第一个问题。请格式化代码?请你也回复@AlexMamo?对不起,我在手机上这么做,赤裸裸的跟我说