Java 在我的FirebaseRecyclerAdapter方法中,我看不到populateviewholder方法未实现
我想从firebase检索数据。当我添加FirebaseRecyclerAdapter方法时 未实现populateviewholder方法而不是此方法。另外两个onCreateViewHolder方法onBind方法正在实现为什么会发生这种情况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
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
// ...
}
};