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

2024-05-04

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

        }

    }


}

当我手动添加 populateviewholder 方法时,android studio 给我一个错误。


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 https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在我的 FirebaseRecyclerAdapter 方法中,我看不到 populateviewholder 方法未实现 的相关文章

  • 写入作为 Jar 文件中的资源包含的 Java 属性文件

    有没有办法修改作为资源存储在 Jar 文件中的属性文件中的属性值 这就是我正在尝试处理的场景 我有一个属性文件作为资源存储在我的 Jar 文件中 有一些系统特定的属性 例如路径 我希望能够为我想要运行 Jar 文件的系统更改此设置 最好的解
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • Java 中内存高效的稀疏数组

    关于时间高效的稀疏数组存在一些问题 但我正在寻找内存效率 我需要相当于List
  • 在 Android 应用程序中使用传单来显示在线地图

    是否有任何示例项目展示如何正确使用传单在 Android 应用程序中显示在线地图 因为我尝试了很多示例 但每次我的应用程序中都有一个空的网络视图 这是我的代码 private WebView mWebView Override protec
  • HYBRIS - 组件和插槽如何在 JSP 文件中工作?

    最近我正在使用 Hybris 我无法理解这些组件是如何工作的 我知道如何创建和定义一个 如何将它们添加到我想要的页面等 但我不明白如何使用该标签
  • Java文本输出中的UTF-8编码问题

    我一直致力于测试高棉语 Unicode Wordbreaker 的各种解决方案 高棉语单词之间没有空格 这使得拼写检查和语法检查变得困难 以及从旧高棉语转换为高棉语 Unicode 我得到了一些源代码 现在在线 http www white
  • 回购:找不到命令?

    我是 git 和 repo 的新手 我使用的是window 7 所以我使用cygwin 我已经从 cygwin 安装程序安装了 git 之后我尝试在 cygwin 中使用以下命令进行存储 repo init u git android gi
  • 使用 JPA 存储库保留 Spring Batch ItemWriter 的问题

    我对春季批次有疑问ItemWriter它依赖于 JPA 存储库来更新数据 这里是 Component public class MessagesDigestMailerItemWriter implements ItemWriter
  • 在 Struts 2 中使用单个文件标签上传多个文件

    我想使用单个 Struts 2 文件标签上传多个文件 就像在 Gmail 中一样 我们使用 CTRL 键来选择多个文件来附加多个文件 我知道如何上传多个文件 但我想使用单个文件标签 我在一个小画廊应用程序中上传多个文件 如果您的操作已设置为
  • 未找到 GroovyEvaluator

    我会尝试在以下位置制作我的 PIE 3D 报告iReport 在我的 struts xml 中 我用这个来调用我的报告
  • 如何使用JSqlParser向sql添加where条件?

    我想用JSqlParser向sql添加where条件 例如 Before select from test table where a 1 group by c After select from test table where a 1
  • Android中计算两个时间之间的差异

    我有两个字符串变量 例如 StartTime 和 EndTime 我需要通过用 StartTime 减去 EndTime 来计算 TotalTime StartTime和EndTime的格式如下 StartTime 08 00 AM End
  • 无法放置双重 SharedPreferences

    出现错误 这种类型的共享首选项编辑器的 put double 方法未定义 Eclipse 提供了一种快速修复方法 将强制类型转换添加到编辑器 但是当我这样做时 它仍然给出错误 为什么我不能 put double 代码 Override pr
  • 正确的单元测试技术

    在使用 TDD 时 我发现自己需要测试一个包含查找值的常量 最终 哈希图 请查看更新中出现这种情况的原因 见下文 private static final Map
  • 自动将通配符导入重构为 IntelliJ 中的显式导入(适用于 Scala/Java)

    考虑下面的代码 是否可以让 IntelliJ 自动将每个通配符导入重构为显式导入 无论范围内使用什么 例如import scalatags JsDom all into import scalatags JsDom all ol li di
  • Android Studio 3.0 中的 Gradle 构建错误

    您能帮我解决 Android 3 0 中的 Gradle 构建问题吗 我是 Android Studio 的新手 以下是我在 AS 3 0 中的配置 gradle gt wrapper gt gradle wrapper propertie
  • 如果垃圾收集器没有删除未引用的对象,它们还能运行吗?

    如果一个对象正在等待垃圾收集 但包含一个在该对象的最后一个引用更改时正在运行的线程 那么该线程是否仍会运行并且代码是否仍会执行 那么您是否可能有一堆应该删除的幽灵对象 但它们对您的代码产生了影响 你如何防止这种情况发生 有没有办法让对象知道
  • 与桌面浏览器相比,移动浏览器有多强大? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • E/libEGL: validate_display:99 错误 3008 (EGL_BAD_DISPLAY) API 24 或更高版本

    当我使用 API 为 24 或更高版本的设备时 我收到此错误 E libEGL validate display 99 错误 3008 EGL BAD DISPLAY XML 代码 activity main xml
  • java 更新进度条

    我有一个 JFrame 和以下组件 JButton jButton1 Progress Bar ProgressBar 及其公共静态 JLabel 状态及其公共静态 单击按钮时会执行不同的语句 我想在每个语句后更新我的进度条 这是我的代码

随机推荐