Передача информации из одного класса в другой

Есть 2 класса: 1ый получает данные из Firebase из Parsing2, 2ой должен наследовать данные 1ого класса. Это нужно, чтобы перенести данные 1ого класса в другой узел БД, создать новый узел у Users и перенести туда информацию. Проблема в том, что объектов много, они располагаются в rv как cv, при нажатии на cv открывается новое активити, с более подробной информацией об объекте, также здесь располагается лайк, при нажатии на который объект должен сохранятся как 2ой класс и дописываться к текущему пользователю как список понравившихся игр, пробовал сделать поле избранных игр при регистрации пользователя, но класс не был заполнен, из-за чего изменений в БД не произошло.

введите сюда описание изображения введите сюда описание изображения

Game class (конструктор 1ого класса)

          public class Game {
          String title;
          String tag1;
          String tag2;
          String tag3;
          String tag4;
          String price;
          String image;
          String link;
          String video;
          String release_date;
          String publisher;
          String description;
          String developer;
          String genre;

     public Game(){
     }

     public Game(String title, String tag1, String tag2, String tag3, String tag4,  String price, String                     image, String link, String video, String release_date, String publisher, String description, String      developer, String genre) {
    this.title=title;
    this.tag1=tag1;
    this.tag2=tag2;
    this.tag3=tag3;
    this.tag4=tag4;
    this.price=price;
    this.image=image;
    this.link=link;
    this.video=video;
    this.release_date=release_date;
    this.publisher=publisher;
    this.description=description;
    this.developer=developer;
    this.genre=genre;
}


public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getTag1() {
    return tag1;
}

public void setTag1(String tag1) {
    this.tag1 = tag1;
}

public String getTag2() {
    return tag2;
}

public void setTag2(String tag2) {
    this.tag2 = tag2;
}

public String getTag3() {
    return tag3;
}

public void setTag3(String tag3) {
    this.tag3 = tag3;
}

public String getTag4() {
    return tag4;
}

public void setTag4(String tag4) {
    this.tag4 = tag4;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getImage() {
    return image;
}

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

public String getLink() {
    return link;
}

public void setLink(String link) {
    this.link = link;
}

public String getVideo() {
    return video;
}

public void setVideo(String video) {
    this.video = video;
}

public String getRelease_date() {
    return release_date;
}

public void setRelease_date(String release_date) {
    this.release_date = release_date;
}

public String getPublisher() {
    return publisher;
}

public void setPublisher(String publisher) {
    this.publisher = publisher;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getDeveloper() {
    return developer;
}

public void setDeveloper(String developer) {
    this.developer = developer;
}

public String getGenre() {
    return genre;
}

public void setGenre(String genre) {
    this.genre = genre;
}

public static final Comparator<Game> BY_TITLE_ASCENDING = new Comparator<Game>() {
    @Override
    public int compare(Game o1, Game o2) {
        return o1.getTitle().compareTo(o2.getTitle());
    }
};

public static final Comparator<Game> BY_TITLE_DESCENDING = new Comparator<Game>() {
    @Override
    public int compare(Game o1, Game o2) {
        return o2.getTitle().compareTo(o1.getTitle());
    }
};}<br>

Games class(получение данных их БД)

public class Games extends AppCompatActivity implements View.OnClickListener{

RecyclerView recyclerView;

private DatabaseReference myRef;

private ArrayList<Game> gamesList;
private RecyclerAdapter recyclerAdapter;
private Context mContext;

SharedPreferences preferences;

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater menuInflater =getMenuInflater();
    menuInflater.inflate(R.menu.menu, menu);

    MenuItem item=menu.findItem(R.id.action_search);

    androidx.appcompat.widget.SearchView searchView = (androidx.appcompat.widget.SearchView) MenuItemCompat.getActionView(item);
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {

            recyclerAdapter.getFilter().filter(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            recyclerAdapter.getFilter().filter(newText);
            return false;
        }
    });

    return true;
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    int id= item.getItemId();

    if (id==R.id.action_sort){
        sortDailog();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

private void sortDailog() {
    String[] options ={"Ascending", "Descending"};
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Sort by:");
    builder.setIcon(R.drawable.sort_img);
    builder.setItems(options, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

            if(which==0){
                SharedPreferences.Editor editor = preferences.edit();
                editor.putString("Sort", "ascending");
                editor.apply();
                recreate();
            }

            if(which==1){
                SharedPreferences.Editor editor = preferences.edit();
                editor.putString("Sort", "descending");
                editor.apply();
                recreate();
            }
        }
    });

    builder.create().show();
}

@Override
protected void onCreate (Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_games);
    ImageButton Home = (ImageButton) findViewById(R.id.home);
    Home.setOnClickListener(this);
    ImageButton Lupa = (ImageButton) findViewById(R.id.lupa);
    Lupa.setOnClickListener(this);
    ImageButton Calendar = (ImageButton) findViewById(R.id.calendar);
    Calendar.setOnClickListener(this);
    ImageButton Kubik = (ImageButton) findViewById(R.id.kubik);
    Kubik.setOnClickListener(this);
    ImageButton Profile = (ImageButton) findViewById(R.id.profile);
    Profile.setOnClickListener(this);

    recyclerView = findViewById(R.id.recyclerview_id);

    preferences=this.getSharedPreferences("My_pref", MODE_PRIVATE);

    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(new GridLayoutManager(this,2));
    recyclerView.setHasFixedSize(true);


    myRef=FirebaseDatabase.getInstance().getReference();

    gamesList= new ArrayList<>();

    //ClearAll();

    GetDataFromFirebase();

    Toolbar toolbar =findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

}

private void GetDataFromFirebase(){

    Query query_simulator = myRef.child("Parsing2");


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

            for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                Game games = new Game();

                games.setImage(snapshot.child("ИЗОБРАЖЕНИЕ").getValue().toString());
                games.setTitle(snapshot.child("НАЗВАНИЕ").getValue().toString());
                games.setTag1(snapshot.child("ТЭГ1").getValue().toString());
                games.setTag2(snapshot.child("ТЭГ2").getValue().toString());
                games.setTag3(snapshot.child("ТЭГ3").getValue().toString());
                games.setTag4(snapshot.child("ТЭГ4").getValue().toString());
                games.setPrice(snapshot.child("ЦЕНА").getValue().toString());
                games.setLink(snapshot.child("ССЫЛКА").getValue().toString());
                games.setVideo(snapshot.child("ВИДЕО").getValue().toString());
                games.setRelease_date(snapshot.child("ДАТА ВЫХОДА").getValue().toString());
                games.setPublisher(snapshot.child("ИЗДАТЕЛЬ").getValue().toString());
                games.setDescription(snapshot.child("ОПИСАНИЕ").getValue().toString());
                games.setDeveloper(snapshot.child("РАЗРАБОТЧИК").getValue().toString());
                games.setGenre(snapshot.child("ЖАНР").getValue().toString());
                gamesList.add(games);


            }

            String mSortSetting = preferences.getString("Sort", "ascending");

            if(mSortSetting.equals("ascending")){
                Collections.sort(gamesList, Game.BY_TITLE_ASCENDING);
            }
            else if(mSortSetting.equals("descending")){
                Collections.sort(gamesList, Game.BY_TITLE_DESCENDING);
            }

            recyclerAdapter = new RecyclerAdapter(getApplicationContext(), gamesList);
            recyclerView.setAdapter(recyclerAdapter);
            recyclerAdapter.notifyDataSetChanged();

        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });
}

private void ClearAll(){
    if(gamesList!=null){
        gamesList.clear();

        if(recyclerAdapter!=null)
            recyclerAdapter.notifyDataSetChanged();
    }

    gamesList= new ArrayList<>();
}

public class ViewHolder extends RecyclerView.ViewHolder{

    ImageView imageView;
    TextView textView, textView1, textView2;


    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        imageView=itemView.findViewById(R.id.game_img_id);
        textView=itemView.findViewById(R.id.game_title_id);
        textView1=itemView.findViewById(R.id.game_tags_id);
        textView2=itemView.findViewById(R.id.game_price_id);
    }

    }

@Override
public void onClick(View v) {
    Intent i;
    switch (v.getId()){
        case R.id.home:
            startActivity(new Intent(this, News.class));
            break;
        case R.id.lupa:
            startActivity(new Intent(this, Games.class));
            break;
        case R.id.calendar:
            startActivity(new Intent(this, Calendar.class));
            break;
        case R.id.kubik:
            startActivity(new Intent(this, Random_game.class));
            break;
        case R.id.profile:
            startActivity(new Intent(this, Profile.class));
            break;


    }
}}<br>

fvdGame class (2ой класс, куда необходимо перенести информацию, он полностью идентичен 1ому)

public class fvdGame {
String title;
String tag1;
String tag2;
String tag3;
String tag4;
String price;
String image;
String link;
String video;
String release_date;
String publisher;
String description;
String developer;
String genre;

public fvdGame() {
}

public fvdGame(String title, String tag1, String tag2, String tag3, String tag4, String price, String image, String link, String video, String release_date, String publisher, String description, String developer, String genre) {
    this.title = title;
    this.tag1 = tag1;
    this.tag2 = tag2;
    this.tag3 = tag3;
    this.tag4 = tag4;
    this.price = price;
    this.image = image;
    this.link = link;
    this.video = video;
    this.release_date = release_date;
    this.publisher = publisher;
    this.description = description;
    this.developer = developer;
    this.genre = genre;
}}<br>

Current_Game class (текущая игра, которая открывается при нажатии на cv, как я понимаю здесь нужно реализовать передачу и создание нового узла)

public class Current_Game extends AppCompatActivity implements View.OnClickListener{

private TextView textView_title, textView_price, textView_link, textView_publisher,textView_developer,textView_release,textView_description,textView_genre;
private VideoView videoView_promo;
Button button_link;
private FirebaseAuth mAuth;
boolean flag = true;
DatabaseReference myRef;
ArrayList<fvdGame> fvdGamesList;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_current_game);

    ImageButton signInBack = (ImageButton) findViewById(R.id.sign_in_back);
    signInBack.setOnClickListener(this);
    button_link=findViewById(R.id.links_game_id);


    mAuth = FirebaseAuth.getInstance();

    myRef=FirebaseDatabase.getInstance().getReference();

    textView_title=findViewById(R.id.game_title_id);
    textView_price=findViewById(R.id.game_price_id);
    textView_link=findViewById(R.id.links_game_id);
    textView_publisher=findViewById(R.id.publisher_name_id);
    textView_developer=findViewById(R.id.developer_name_id);
    textView_release=findViewById(R.id.release_date_name_id);
    textView_description=findViewById(R.id.game_description_id);
    textView_genre=findViewById(R.id.genre_name_id);
    videoView_promo=findViewById(R.id.banner);

    MediaController mediaController=new MediaController(this);
    videoView_promo.setMediaController(mediaController);
    mediaController.setAnchorView(videoView_promo);

    Intent intent=getIntent();
    String Title=intent.getExtras().getString("Title");
    String Price=intent.getExtras().getString("Price");
    String Link=intent.getExtras().getString("Link");
    String Publisher=intent.getExtras().getString("Publisher");
    String Developer=intent.getExtras().getString("Developer");
    String Release=intent.getExtras().getString("Release");
    String Description=intent.getExtras().getString("Description");
    String Genre=intent.getExtras().getString("Genre");
    String Video=intent.getExtras().getString("Video");


    textView_title.setText(Title);
    textView_price.setText(Price);
    //textView_link.setText(Link);
    textView_publisher.setText(Publisher);
    textView_developer.setText(Developer);
    textView_release.setText(Release);
    textView_description.setText(Description);
    textView_genre.setText(Genre);
    videoView_promo.setVideoPath(Video);

    button_link.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            gotoUrl(Link);
        }

        private void gotoUrl(String link) {
            Uri uri=Uri.parse(link);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        }
    });
    

    final ImageButton imageButton_like = (ImageButton) findViewById(R.id.like_button);
    imageButton_like.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {

                
                if (flag){
                    imageButton_like.setImageResource(R.drawable.like_form2);
                    Toast.makeText(com.example.adviseriltc.Current_Game.this, "Добавлено в избранное", Toast.LENGTH_SHORT).show();
                    flag = false;
                    
                }else{
                    
                    imageButton_like.setImageResource(R.drawable.like_form1);
                    Toast.makeText(com.example.adviseriltc.Current_Game.this, "Удалено из избранного", Toast.LENGTH_SHORT).show();
                    flag=true;
                }

            }
    });
}


@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.sign_in_back:
        startActivity(new Intent(this, Games.class));
        break;
    }
}}

Экраны списка игр и текущей игры соответственно.
введите сюда описание изображения

введите сюда описание изображения


Ответы (0 шт):