Можно ли просмотреть циклические данные с использованием горизонтального и вертикального обзора переработчика? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть эти данные в firebase:

screenshot of the firebase data

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

   first_recycler_view = (RecyclerView) view.findViewById(R.id.first_recycler_view);
    first_recycler_view.setNestedScrollingEnabled(false);
    first_recycler_view.setHasFixedSize(false);

    first_recycler_view.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));

    database = FirebaseDatabase.getInstance();
    final DatabaseReference reference = database.getReference().child("festivals");
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            list = new ArrayList<Profile>();
            for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                Profile p = dataSnapshot1.getValue(Profile.class);
                list.add(p);
            }
            adapter = new MyAdapter(getContext().getApplicationContext(), list);
            first_recycler_view.setAdapter(adapter);
            rvid = 1;

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(getContext(), "Opsss.... Something is wrong", Toast.LENGTH_SHORT).show();
        }

    });


    second_recycler_view = (RecyclerView) view.findViewById(R.id.second_recycler_view);
    second_recycler_view.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));

    database = FirebaseDatabase.getInstance();
    final DatabaseReference reference1 = database.getReference().child("categories");
    reference1.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            list = new ArrayList<Profile>();
            for (DataSnapshot dataSnapshot2 : dataSnapshot.getChildren()) {
                Profile p = dataSnapshot2.getValue(Profile.class);
                list.add(p);
            }
            adapter = new MyAdapter(getContext(), list);
            second_recycler_view.setAdapter(adapter);
            rvid = 2;
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(getContext(), "Opsss.... Something is wrong", Toast.LENGTH_SHORT).show();
        }


    });

Возможно ли получить все данные из базы данных одним махом вместо того, чтобы писать один и тот же код каждый раз, когда я хочу получить новое представление о переработчике. Фактические данные в моем проекте большие, поэтому было бы полезно автоматизировать процесс.

Вот мой адаптер

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

Context context;
ArrayList<Profile> profiles;
public View view;


public MyAdapter(Context c , ArrayList<Profile> p)
{
    context = c;
    profiles = p;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_movie, parent, false);
    return new MyViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    holder.title.setText(profiles.get(position).getName());

    Picasso.get().load(profiles.get(position).getImage()).into(holder.profilePic);


}


@Override
public int getItemCount() {
    return profiles.size();
}

class MyViewHolder extends RecyclerView.ViewHolder
{
    TextView title;
    ImageView profilePic;

    public MyViewHolder(View itemView) {
        super(itemView);
        view = itemView;

    if(HomeFragment.rvid == 1) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(context, Festival.class);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.putExtra("Name", title.getText());
                context.startActivity(i);

            }
        });
    } else if (HomeFragment.rvid == 3 ) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(context, Places.class);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                i.putExtra("Name", title.getText());
                context.startActivity(i);

            }
        });

    }

        title = (TextView) itemView.findViewById(R.id.movietitle);

        profilePic = (ImageView) itemView.findViewById(R.id.thumbnail);

    }

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