Отображение всех данных из firebase JTree с использованием списка массивов - PullRequest
0 голосов
/ 24 сентября 2019

Я не знаю, как отобразить данные, хранящиеся в моей базе данных, в списке массивов и сделать его кликабельным в моем приложении, показанные данные выглядят грязными, как будто данные показывают только «Заголовок» и отступпространство было слишком велико, и данные пропали при тестировании, если я добавлю их в интерактивную вкладку.

Я попытался упорядочить список данных (по вертикали) и установить его как интерактивный, но данные пропали при тестировании.поэтому я вернул его к списку данных, но он все еще грязный и показывает только заголовок.

Это мой AdapterDescRecyclerView для данных

package com.example.rsolveapp;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;

public class AdapterDescRecyclerView extends 
RecyclerView.Adapter<AdapterDescRecyclerView.ViewHolder> {

private ArrayList<Description> daftarBarang;
private Context context;

public AdapterDescRecyclerView(ArrayList<Description> barangs, Context 
ctx){

    daftarBarang = barangs;
    context = ctx;
}

class ViewHolder extends RecyclerView.ViewHolder {


    TextView tvTitle;
    TextView tvday;
    TextView tvshour;
    TextView tvsmin;
    TextView tvehour;
    TextView tvemin;
    CardView cvMain;

    ViewHolder(View v) {
        super(v);
        tvTitle = (TextView) v.findViewById(R.id.tv_namabarang);
        tvday = (TextView) v.findViewById(R.id.tv_day);
        tvshour = (TextView) v.findViewById(R.id.tv_shour);
        tvsmin = (TextView) v.findViewById(R.id.tv_smin);
        tvehour = (TextView) v.findViewById(R.id.tv_ehour);
        tvemin = (TextView) v.findViewById(R.id.tv_emin);
        cvMain = (CardView) v.findViewById(R.id.cv_main);
    }
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View v = 
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_job, 
parent, false);
    // mengeset ukuran view, margin, padding, dan parameter layout lainnya
    ViewHolder vh = new ViewHolder(v);
    return vh;
}

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {

    final String name = daftarBarang.get(position).getDescription();

    holder.tvTitle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });
    holder.tvTitle.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {

            return true;
        }
    });
    holder.tvTitle.setText(name);
    holder.tvday.setText(name);
    holder.tvshour.setText(name);
    holder.tvsmin.setText(name);
    holder.tvehour.setText(name);
    holder.tvemin.setText(name);


}

@Override
public int getItemCount() {

    return daftarBarang.size();
}
}

Это моя активность для отображения данных

package com.example.rsolveapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnSuccessListener;
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 java.util.ArrayList;


public class RsolverMatch extends AppCompatActivity{


private DatabaseReference database;
private RecyclerView rvView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
private ArrayList<Description> daftarBarang;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.rsolvermatch);


    rvView = (RecyclerView) findViewById(R.id.rv_main);
    rvView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    rvView.setLayoutManager(layoutManager);


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


    database.child("description").addValueEventListener(new 
    ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            daftarBarang = new ArrayList<>();
            for (DataSnapshot noteDataSnapshot : 
            dataSnapshot.getChildren()) {

                Description description = 
                noteDataSnapshot.getValue(Description.class);
                description.setKey(noteDataSnapshot.getKey());


                daftarBarang.add(description);
            }


            adapter = new AdapterDescRecyclerView(daftarBarang, 
            RsolverMatch.this);
            rvView.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

            System.out.println(databaseError.getDetails()+" 
            "+databaseError.getMessage());
        }
    });
}

public static Intent getActIntent(Activity activity){
    return new Intent(activity, RsolverMatch.class);
}
}

Вот 2 скриншота данных о тестировании

Данные 1 - отображение всех данных, отображаемых как «Заголовок»

Данные 2 - (Отображается так же, как данные 1, и разрыв / отступ между данными был слишкомбольшой)

Я ожидал, что список организованных массивов данных будет таким же, как и то, что было сохранено в базе данных как JTree, но отображаемый результат был грязным, и все данные были изменены только на«Заголовок», включая описание.

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