в моем методе FirebaseRecyclerAdapter я не вижу, что метод populateviewholder не реализуется - PullRequest
0 голосов
/ 03 октября 2019

Я хочу получить данные из базы данных. когда я добавляю метод FirebaseRecyclerAdapter, метод populateviewholder вместо этого не реализуется. два других метода onCreateViewHoldermetond onBind реализует, почему это происходит

import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.expensemanager.model.Data;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;


/**
 * A simple {@link Fragment} subclass.
 */
public class IncomeFragment extends Fragment {


    public IncomeFragment() {
        // Required empty public constructor
    }

        //firebase database
    private FirebaseDatabase fireDatabase;
    private FirebaseAuth firebaseAuth;
    private DatabaseReference mIncomeDatabase, mExpenseDatabase;
    private RecyclerView recycleView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View myView = inflater.inflate(R.layout.fragment_income, container, false);
        firebaseAuth = FirebaseAuth.getInstance();
        FirebaseUser fireUser = firebaseAuth.getCurrentUser();
        String uid = fireUser.getUid();
        mIncomeDatabase = FirebaseDatabase.getInstance().getReference().child("Income Data 1").child(uid);

        recycleView = myView.findViewById(R.id.recycle_income);
        LinearLayoutManager linManager = new LinearLayoutManager(getActivity());
        linManager.setReverseLayout(true);
        linManager.setStackFromEnd(true);
        recycleView.setHasFixedSize(true);
        recycleView.setLayoutManager(linManager);
        return myView;
    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseRecyclerAdapter<Data,myViewHolder> adapter = new FirebaseRecyclerAdapter<Data, myViewHolder>(
                Data.class, R.layout.income_recycler_data, myViewHolder.class, mIncomeDatabase
        ) {
            @Override
            protected void onBindViewHolder(@NonNull myViewHolder viewHolder, int i, @NonNull Data data) {

            }

            @NonNull
            @Override
            public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                return null;
            }
        };
    }

    public static class myViewHolder extends RecyclerView.ViewHolder{
        View mView;
        public myViewHolder(@NonNull View itemView) {
            super(itemView);
            mView = itemView;
        }
        private void setType(String type){
            TextView mType = itemView.findViewById(R.id.type_text_income);
            mType.setText(type);
        }
        private void setNote(String note){
            TextView mNote = itemView.findViewById(R.id.note_text_income);
            mNote.setText(note);
        }
        private void setDate(String date){
            TextView mDate = itemView.findViewById(R.id.date_text_income);
            mDate.setText(date);
        }
        private void setAmount(int amount){
            TextView mAmount = itemView.findViewById(R.id.amount_text_income);
            String retriveAmount = String.valueOf(amount);
            mAmount.setText(retriveAmount);

        }

    }


}

, когда Iadd вручную заполняет метод-держатель представления android studio выдает мне ошибку.

1 Ответ

0 голосов
/ 03 октября 2019

populateviewholder был удален. Теперь вам нужно сделать следующее:

Сначала настройте адаптер с помощью FirebaseRecyclerOptions

 FirebaseRecyclerOptions<Chat> options =
                new FirebaseRecyclerOptions.Builder<Data>()
                        .setQuery(query, Data.class)
                        .build();

Затем создайте проверку FirebaseRecyclerAdapter:

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Data, myViewHolder>(options) {
    @Override
    public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // Create a new instance of the ViewHolder, in this case we are using a custom
        // layout called R.layout.message for each item
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.message, parent, false);

        return new myViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(myViewHolderholder, int position, Data model) {
        // Bind the Data object to the myViewHolder
        // ...
    }
};

здесь для более подробной информации:

https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...