【问题标题】:Android studio error in the code代码中的 Android Studio 错误
【发布时间】:2018-01-06 15:53:06
【问题描述】:

大家好,我正在 android studio 上开发一个示例项目,我是这方面的初学者。我遇到了一个错误,请帮助解决这个问题。

错误

Error:(54, 68) 错误:类 FirebaseRecyclerAdapter 中的构造函数 FirebaseRecyclerAdapter 不能应用于给定类型; 必需:FirebaseRecyclerOptions 找到:类,int,类,数据库引用 原因:实际参数列表和形式参数列表的长度不同 其中 T,VH 是类型变量: T 扩展类 FirebaseRecyclerAdapter 中声明的 Object VH 扩展了在 FirebaseRecyclerAdapter 类中声明的 ViewHolder

Error:(62, 50) error: 找不到符号方法getContent()

主要代码如下

MainActivity()

package com.hof_university.chethan.chatmessenger;

import android.os.Message;
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.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {

    private EditText editMessage;
    private DatabaseReference mDatabase;
    private RecyclerView mMessageList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        editMessage = (EditText) findViewById(R.id.editMessageE);
        mDatabase = FirebaseDatabase.getInstance().getReference().child("Messages");
        mMessageList = (RecyclerView) findViewById(R.id.messageRec);
        mMessageList.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setStackFromEnd(true);
        mMessageList.setLayoutManager(linearLayoutManager);

    }

    public void sendButtonClicked(View view){
        final String messageValue = editMessage.getText().toString().trim();
        if (!TextUtils.isEmpty(messageValue)){
            final DatabaseReference newPost = mDatabase.push();
            newPost.child("content").setValue(messageValue);
        }
    }

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

        FirebaseRecyclerAdapter <Message,MessageViewHolder> FBRA = new FirebaseRecyclerAdapter<Message, MessageViewHolder>(
                Messages.class,
                R.layout.singlemessagelayout,
                MessageViewHolder.class,
                mDatabase
        ) {
            @Override
            protected void onBindViewHolder(@NonNull MessageViewHolder viewHolder, int position, @NonNull Message model) {
                      viewHolder.setContent(model.getContent());
            }

            @Override
            public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                return null;
            }
        };
        mMessageList.setAdapter(FBRA);
    }

    public static class MessageViewHolder extends RecyclerView.ViewHolder {

        View mView;

        public MessageViewHolder(View itemView) {
            super(itemView);
            mView = itemView;
        }

        public void setContent(String content){
            TextView message_content = (TextView) mView.findViewById(R.id.messageText);
            message_content.setText(content);
        }
    }
}

请帮我解决错误。

【问题讨论】:

    标签: android


    【解决方案1】:

    您必须使用 FirebaseRecyclerViewAdapter 类而不是 FirebaseRecyclerAdapter,后者仅接受 FirebaseRecyclerOptions 作为构造函数中的参数

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 2016-01-10
    • 2018-03-18
    相关资源
    最近更新 更多