com.google.firebase.database.DatabaseException: невозможно преобразовать объект типа java .lang.String в тип com.napps.wallpaper.recyclercontent - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу, чтобы мои изображения из моей базы данных отображались в моем представлении переработчика, но, как я уже говорил, я столкнулся с проблемой с Firebase, и из-за этого мое приложение зависало, не знаю, что делать. заранее благодарю за помощь. Я добавил все необходимые зависимости, связанные с Firebase, и я работаю с SDK 29.

"Я создал класс, в котором есть имя Arraylist arrayurl, которое публикуется c и stati c"

recyclercontent. java

package com.napps.wallpaper;

import android.widget.ImageView;

public class recyclercontent {


    private String image;

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}

mainactivity. java

package com.napps.wallpaper;

import android.Manifest;
import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import android.view.MenuItem;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.core.view.GravityCompat;
import androidx.fragment.app.Fragment;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;

import com.google.android.material.navigation.NavigationView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import androidx.drawerlayout.widget.DrawerLayout;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.RecyclerView;

import android.view.Menu;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener,
        imageAdapter.itemclicked {

    private AppBarConfiguration mAppBarConfiguration;
    DrawerLayout drawer;
    FirebaseDatabase database;
    DatabaseReference reff;
    recyclercontent recyclercontent;
    ArrayList<recyclercontent>arr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        NavigationView navigationView=findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);



        database=FirebaseDatabase.getInstance();
        reff=database.getReference().child("recyclercontent");


        reff.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for (DataSnapshot data:dataSnapshot.getChildren()){
                        recyclercontent=data.getValue(recyclercontent.class); //here i am getting error
                        array_class.arrayurl.add(recyclercontent);
                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(MainActivity.this, "not working", Toast.LENGTH_SHORT).show();
            }
        });




         drawer = findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle=new ActionBarDrawerToggle(this,drawer,toolbar,
                R.string.navigation_drawer_open,R.string.navigation_drawer_close);
            drawer.addDrawerListener(toggle);
            toggle.syncState();


            if (savedInstanceState==null) {
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new fragment_wallpaper())
                        .commit();
                navigationView.setCheckedItem(R.id.nav_wallpaper);
            }
    }


    @Override
    public void onBackPressed() {
        if (drawer.isDrawerOpen(GravityCompat.START)){
         drawer.closeDrawer(GravityCompat.START);
        }else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        switch (menuItem.getItemId()){
            case R.id.nav_wallpaper:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new fragment_wallpaper())
                        .commit();
                break;
            case R.id.nav_ringtone:
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new fragment_ringtone())
                        .commit();
                break;
        }
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

    @Override
    public void onitemclicked(int index) {
        Toast.makeText(this, "hello", Toast.LENGTH_SHORT).show();
    }
}

на этом изображении показана настройка базы данных Firebase

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