java - android studio 中的 onStart 和 Override 错误

标签 java android

我编写了一些代码来从 Firebase 获取数据,但它显示了一些错误。我将在下面解释错误并附上图片。

enter image description here

当我将鼠标放在上面时出现第一个错误,消息显示: “com.abdullrahman.eng.myapp.FriendsFragment”中的“onStart()”与“android.app.Fragment”中的“onStart()”冲突;尝试分配较弱的访问权限(“ protected ”);是“公开”的

当我将鼠标放在上面时出现第二个错误,消息显示: 方法不会覆盖其父类(super class)中的方法

有人可以解决这些问题并帮助我吗?

代码:

@Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<Friends, FriendsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(

            Friends.class,
            R.layout.users_single_layout,
            FriendsViewHolder.class,
            mUsersDatabase

    ) {
        @Override
        protected void populateViewHolder(FriendsViewHolder friendsViewHolder, Friends friends, int position) {

            friendsViewHolder.setDisplayName(friends.getName());
            friendsViewHolder.setUserStatus(friends.getStatus());
            friendsViewHolder.setUserImage(friends.getThumb_image(), mMainView.getContext());

            final String user_id = getRef(position).getKey();

            friendsViewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent profileIntent = new Intent(getActivity(), UserProfile.class);
                    profileIntent.putExtra("user_id", user_id);
                    startActivity(profileIntent);

                }
            });
        }
    };

    mUsersList.setAdapter(firebaseRecyclerAdapter);

}

最佳答案

错误确实说明了您遇到的问题。

第一个错误是由 onStart() 方法上的 protected 访问修饰符引起的,而它应该是 public。 应该是

@Override
public void onStart() {
    super.onStart();
    // rest of the code
}

而不是

@Override
protected void onStart() {
    super.onStart();
    // rest of the code
}

您可以在docs available on Oracle site中找到有关错误原因的更多信息。 .

第二个问题与 FirebaseRecyclerAdapter 的定义有关。好像没有类似的方法

protected void populateViewHolder(FriendsViewHolder friendsViewHolder, Friends friends, int position).

我建议检查此类的文档/源代码,以获取有关重写方法应如何查找您在项目中使用的 Firebase 版本的信息。

此外,据我所知,您正在使用 IntelliJ IDEA 或一些类似的 IDE,因此您可以使用 built-in feature to implement/override the correct method .

关于java - android studio 中的 onStart 和 Override 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49307700/

相关文章:

java - JPanel 左侧的 JTextArea

java - Mockito 模棱两可的方法调用

java - Java 仅使用 2 个 CPU 内核

java - ServerSocket close 方法不释放端口

java - 输入扫描仪被跳过

java - 在android中添加新数据时ArrayList数据被清除

Android studio 在布局设计过程中卡住

安卓 : In Lollipop sms intent not return to app

java - 动态设置约束小部件

java - 如何识别类的实例的唯一性