【问题标题】:FirebaseFirebaseRecyclerAdapter error after update ui version to 3.3.0将 ui 版本更新到 3.3.0 后 FirebaseFirebaseRecyclerAdapter 错误
【发布时间】:2020-11-15 07:58:10
【问题描述】:

最近我将“com.firebaseui:firebase-ui:0.6.2”更新为“com.firebaseui:firebase-ui:3.3.0”,但之后无法解析 FirebaseRecyclerAdaptesr 并导入 com.firebase.ui.database。 FirebaseRecyclerAdapter'。出了什么问题以及如何解决?请帮帮我。

这是我的代码

RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;

GridLayoutManager mLayoutManager; //for sorting
SharedPreferences mSharedPref; //for saving sort settings

FirebaseDatabase database;
DatabaseReference MCC, mRef;

String categoryId = "";


FirebaseRecyclerAdapter<computerSubModel, computerSubViewHolder> adapter;



//Search Bar
FirebaseRecyclerAdapter<computerSubModel, computerSubViewHolder> SearchAdapter;
List<String> suggestList = new ArrayList<>();
MaterialSearchBar materialSearchBar;


Button btn;

private static final String APP_ID = "ca-app-pub-8867939169855032~9998384849";



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

    MobileAds.initialize(this,APP_ID);
    AdView adView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);


    btn = (Button) findViewById(R.id.backbutton);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent toy = new Intent(AndroidDevelopingSubActivity.this, AndroidDevelopngTopicActivity.class);
            startActivity(toy);
        }
    });




    database = FirebaseDatabase.getInstance();
    MCC = database.getReference("1AndroidDevelopingSub");


    recyclerView = (RecyclerView) findViewById(R.id.recycler_AndroidDeveloping);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(new GridLayoutManager(this, 1));


    if (getIntent() != null)
        categoryId = getIntent().getStringExtra("CategoryId");
    if (!categoryId.isEmpty() && categoryId != null) {
        loadListThrillerSubModel(categoryId);
    }



}

private void loadListThrillerSubModel(String categoryId) {

    adapter = new FirebaseRecyclerAdapter<computerSubModel, computerSubViewHolder>(computerSubModel.class,
            R.layout.computer_sub_items,
            computerSubViewHolder.class,
            MCC.orderByChild("menuid").equalTo(categoryId)) {

        @Override
        protected void populateViewHolder(computerSubViewHolder viewHolder, final computerSubModel model, int position) {
            viewHolder.thrillersub_title.setText(model.getTitle());


            final computerSubModel local = model;
            viewHolder.setItemClickListner(new ItemClickListner() {
                @Override
                public void onClick(View view, int position, boolean isLongClick) {


                    Intent detailsIntent = new Intent(AndroidDevelopingSubActivity.this, AndroidDevelopingVideoActivity.class);
                    detailsIntent.putExtra("CategoryId", adapter.getRef(position).getKey());
                    startActivity(detailsIntent);
                }
            });


        }
    };

    recyclerView.setAdapter(adapter);
}

【问题讨论】:

    标签: java android firebase-realtime-database firebase-authentication firebaseui


    【解决方案1】:

    使用

        implementation 'com.firebaseui:firebase-ui-database:3.3.0'
    

    而不是

        implementation 'com.firebaseui:firebase-ui:3.3.0'
    

    【讨论】:

    • 这次显示 Class 'Anonymous class derived from FirebaseAdapter' must be declared abstract in Adapter 这个错误
    • @PrasinPrathap 这是不同的错误,这意味着您需要实现适配器方法 onCreateViewHolder 和 onBindViewHolder,因为 FirebaseAdapter 的实现不同,没有 populateViewHolder
    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多