Я не знаю, как отобразить данные, хранящиеся в моей базе данных, в списке массивов и сделать его кликабельным в моем приложении, показанные данные выглядят грязными, как будто данные показывают только «Заголовок» и отступпространство было слишком велико, и данные пропали при тестировании, если я добавлю их в интерактивную вкладку.
Я попытался упорядочить список данных (по вертикали) и установить его как интерактивный, но данные пропали при тестировании.поэтому я вернул его к списку данных, но он все еще грязный и показывает только заголовок.
Это мой 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, но отображаемый результат был грязным, и все данные были изменены только на«Заголовок», включая описание.