не может разрешить конструктор FirebaseRecyclerAdapter при попытке использовать FirebaseUI

Я использую FirebaseUI FirebaseRecyclerAdapter, как описано в github.

Но я получаю сообщение об ошибке (не удается разрешить конструктор FirebaseRecyclerAdapter). Перепробовал все что можно, но все равно выдает ту же ошибку.

вот моя активность

Firebase ref = new Firebase("https://myapp.firebaseio.com/shoplist");

RecyclerView recyclerView;
String enteredShopName;

private FirebaseRecyclerAdapter<Chat, ChatHolder> mRecyclerViewAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

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

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            createDialog();
        }
    });
}

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

    attachRecyclerViewAdapter();
}

private void attachRecyclerViewAdapter() {
    mRecyclerViewAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(
            Chat.class, R.layout.message, ChatHolder.class, ref) {

        @Override
        public void populateViewHolder(ChatHolder chatView, Chat chat, int position) {
            chatView.setName(chat.getName());


        }
    };

               }
    });

    mRecyclerViewAdapter.setAdapter(mRecyclerViewAdapter);
}

private void createDialog() {
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    LayoutInflater inflater = this.getLayoutInflater();
    final View dialogView = inflater.inflate(R.layout.addshop_dialog, null);
    dialogBuilder.setView(dialogView);

    final EditText randeephooda = (EditText) dialogView.findViewById(R.id.et_shopName);

    enteredShopName = randeephooda.getText().toString();

    dialogBuilder.setTitle("Add Shop");
    dialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //do something with edt.getText().toString();


            Chat chat = new Chat(enteredShopName);
            ref.push().setValue(chat);
        }
    });

    dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            //pass
        }
    });

    AlertDialog b = dialogBuilder.create();
    b.show();
}

мой пожо

    String name;

    public Chat() {
    }

    public Chat(String name) {
        this.name = name;

    }

    public String getName() {
        return name;
    }

Мой ViewHolder

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

    public void setName(String name) {
        TextView field = (TextView) mView.findViewById(R.id.shoprecyclerview_textView);
        field.setText(name);
    }
}

person Mehul Kanzariya    schedule 28.05.2016    source источник
comment
Укажите ошибку и ссылку на класс github, который вы используете. Вы также можете отредактировать свой вопрос, чтобы показать минимальный воспроизводимый пример   -  person OneCricketeer    schedule 28.05.2016
comment
@cricket_007 Вот ссылка (github.com/firebase/FirebaseUI-Android/blob/master/app/src/main/)   -  person Mehul Kanzariya    schedule 28.05.2016
comment
Если Android Studio не может найти класс FirebaseRecyclerAdapter, вам не хватает этого импорта import com.firebase.ui.database.FirebaseRecyclerAdapter; или этой зависимости compile 'com.firebaseui:firebase-ui-database:0.4.0'.   -  person Frank van Puffelen    schedule 28.05.2016
comment
Если он не может разрешить конструктор, то ваши типы объектов неверны. Проверьте свой импорт на соответствие документированному конструктору   -  person OneCricketeer    schedule 28.05.2016


Ответы (2)


Изменять

mRecyclerViewAdapter.setAdapter(mRecyclerViewAdapter);//this line caused error

to

recyclerView.setAdapter(mRecyclerViewAdapter);//Need to set adapter to the recyclerview

Сделанный.

person pRaNaY    schedule 28.05.2016
comment
Хороший улов. Было бы легче обнаружить, если бы сообщение об ошибке было более описательным в вопросе - person OneCricketeer; 28.05.2016
comment
Действительно хорошо замечено - person Frank van Puffelen; 29.05.2016

Пожалуйста, просмотрите ответ здесь:

Проблема заключается в использовании старого кода firebase при создании ссылки

Firebase ref = new Firebase("https://myapp.firebaseio.com/shoplist");

Перейдите на новый код firebase и используйте вместо этого:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
person Higen    schedule 04.06.2016
comment
Я использую новую ссылку, но метод populateViewHolder по-прежнему никогда не вызывается, см.: stackoverflow.com/questions/38263758/. Любые идеи? Спасибо! - person raphh; 08.07.2016