Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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 在我的FirebaseRecyclerAdapter方法中,我看不到populateviewholder方法未实现_Java_Android_Firebase_Android Recyclerview - Fatal编程技术网

Java 在我的FirebaseRecyclerAdapter方法中,我看不到populateviewholder方法未实现

Java 在我的FirebaseRecyclerAdapter方法中,我看不到populateviewholder方法未实现,java,android,firebase,android-recyclerview,Java,Android,Firebase,Android Recyclerview,我想从firebase检索数据。当我添加FirebaseRecyclerAdapter方法时 未实现populateviewholder方法而不是此方法。另外两个onCreateViewHolder方法onBind方法正在实现为什么会发生这种情况 import android.os.Bundle; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.recyclerv

我想从firebase检索数据。当我添加FirebaseRecyclerAdapter方法时 未实现populateviewholder方法而不是此方法。另外两个onCreateViewHolder方法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);

        }

    }


}
导入android.os.Bundle;
导入androidx.annotation.NonNull;
导入androidx.fragment.app.fragment;
导入androidx.recyclerview.widget.LinearLayoutManager;
导入androidx.recyclerview.widget.recyclerview;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
导入com.example.expensemanager.model.Data;
导入com.firebase.ui.database.FirebaseRecyclerAdapter;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
/**
*一个简单的{@link Fragment}子类。
*/
公共类IncomeFragment扩展了片段{
公共收入片段(){
//必需的空公共构造函数
}
//firebase数据库
私有FirebaseDatabase fireDatabase;
私有FirebaseAuth FirebaseAuth;
私有数据库参考mIncomeDatabase、mExpenseDatabase;
私人回收站查看回收站查看;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图myView=充气机。充气(R.layout.fragment\u收入,容器,错误);
firebaseAuth=firebaseAuth.getInstance();
FirebaseUser fireUser=firebaseAuth.getCurrentUser();
字符串uid=fireUser.getUid();
mIncomeDatabase=FirebaseDatabase.getInstance().getReference().child(“收入数据1”).child(uid);
recycleView=myView.findViewById(R.id.recycle\U收入);
LinearLayoutManager linManager=新的LinearLayoutManager(getActivity());
linManager.setReverseLayout(true);
linManager.setStackFromEnd(true);
recycleView.setHasFixedSize(真);
recycleView.setLayoutManager(linManager);
返回myView;
}
@凌驾
public void onStart(){
super.onStart();
FirebaseRecyclerAdapter适配器=新的FirebaseRecyclerAdapter(
Data.class,R.layout.income\u recycler\u数据,myViewHolder.class,mIncomeDatabase
) {
@凌驾
受保护的无效onBindViewHolder(@NonNull myViewHolder viewHolder,int i,@NonNull Data){
}
@非空
@凌驾
public myViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
返回null;
}
};
}
公共静态类myViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共myViewHolder(@NonNull View itemView){
超级(项目视图);
mView=项目视图;
}
私有void集合类型(字符串类型){
TextView mType=itemView.findviewbyd(R.id.type\u text\u income);
mType.setText(类型);
}
私有void设置注释(字符串注释){
TextView mNote=itemView.findViewById(R.id.note\u text\u income);
mNote.setText(注);
}
私有无效设置日期(字符串日期){
TextView mDate=itemView.findViewById(R.id.date\u text\u income);
mDate.setText(日期);
}
私有无效设置金额(整数金额){
TextView mAmount=itemView.findViewById(R.id.amount\u text\u income);
String retriveAmount=String.valueOf(金额);
mAmount.setText(检索装载);
}
}
}

当Iadd手动填充ViewHolder方法时,android studio给了我一个错误

已删除populateviewholder
。现在,您需要执行以下操作:

首先使用
FirebaseRecyclerOptions

 FirebaseRecyclerOptions<Chat> options =
                new FirebaseRecyclerOptions.Builder<Data>()
                        .setQuery(query, Data.class)
                        .build();
查看此处了解更多详细信息:


什么是错误
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
        // ...
    }
};