Android вместо карты в recyclerview приложение показывает мне пустую страницу

99
7

ребята, я новичок в программировании для Android, и это второй обзор RecyclerView +, который я реализую, но я не могу понять, что с этим не так. Активность показывает это:

Изображение из пустой активности вместо recyclerView

RecyclerView.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.RecyclerView
android:id="@+id/rvPaquetes"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

</android.support.v7.widget.RecyclerView>

CardView.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="300sp"
android:layout_marginLeft="15sp"
android:layout_marginRight="15sp"
android:layout_marginTop="15sp"
android:id="@+id/cvPaquete"
android:background="@drawable/line_white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_blue"
android:padding="10dp" >
<ImageView
android:id="@+id/ivBox"
android:layout_marginTop="30sp"
android:layout_centerHorizontal="true"
android:layout_width="50sp"
android:layout_height="50sp"
android:src="@drawable/commercial_box"
android:cropToPadding="false"
/>
<TextView
android:id="@+id/tvCB"
android:layout_marginTop="15sp"
android:layout_marginLeft="40sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Codigo Barra: "
android:layout_below="@+id/ivBox"
android:textSize="16sp"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvCBValue"
android:layout_marginTop="15sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1691028531"
android:layout_toRightOf="@+id/tvCB"
android:layout_below="@+id/ivBox"
android:textSize="16sp"
android:textColor="@color/white"
/>
<TextView
android:id="@+id/tvTracking"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tracking: "
android:layout_below="@+id/tvCB"
android:layout_marginLeft="40sp"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:id="@+id/tvTrackingValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1zwwe2155121"
android:layout_below="@+id/tvCB"
android:layout_toRightOf="@+id/tvTracking"
android:layout_marginLeft="30sp"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:id="@+id/tvRemitente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remitente: "
android:layout_below="@+id/tvTracking"
android:layout_marginLeft="40sp"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:id="@+id/tvRemitenteValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Conrado Rivera"
android:layout_below="@+id/tvTracking"
android:layout_toRightOf="@+id/tvRemitente"
android:layout_marginLeft="30sp"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:id="@+id/tvConsignatario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Consignatario: "
android:layout_below="@+id/tvRemitente"
android:layout_marginLeft="40sp"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:id="@+id/tvConsignatarioValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AMAZON"
android:layout_below="@+id/tvRemitente"
android:layout_toRightOf="@+id/tvConsignatario"
android:textColor="@color/white"
android:textSize="16sp"
/>

<TextView
android:id="@+id/tvFechaEnvio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fecha de envio: "
android:textColor="@color/white"
android:textSize="16sp"
android:layout_marginLeft="40sp"
android:layout_below="@+id/tvConsignatario"
/>
<TextView
android:id="@+id/tvFechaEnvioValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01/07/2016"
android:textColor="@color/white"
android:textSize="16sp"
android:layout_toRightOf="@+id/tvFechaEnvio"
android:layout_below="@+id/tvConsignatario"
/>
<TextView
android:id="@+id/tvNumeroPiezas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No. Piezas: "
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvFechaEnvio"
android:layout_marginLeft="40sp"
/>
<TextView
android:id="@+id/tvNumeroPiezasValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvFechaEnvio"
android:layout_toRightOf="@+id/tvNumeroPiezas"
/>
<TextView
android:id="@+id/tvPeso"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Peso: "
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvNumeroPiezas"
android:layout_marginLeft="40sp"
/>
<TextView
android:id="@+id/tvPesoValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvNumeroPiezas"
android:layout_toRightOf="@+id/tvPeso"
/>
<TextView
android:id="@+id/tvValorDeclarado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Valor declarado: "
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvPeso"
android:layout_marginLeft="40sp"
/>
<TextView
android:id="@+id/tvValorDeclaradoValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="350.00"
android:textColor="@color/white"
android:textSize="16sp"
android:layout_below="@+id/tvPeso"
android:layout_toRightOf="@+id/tvValorDeclarado"
/>
</RelativeLayout>
</android.support.v7.widget.CardView>

MainActivity.class

Открытый класс ExportacionesRastreoPaqueteActivity расширяет AppCompatActivity {

private ArrayList<Paquete> paquetes;
private RecyclerView listaPaquetes;

@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.activity_exportaciones_rastreo_paquete);

listaPaquetes = (RecyclerView) findViewById(R.id.rvPaquetes);
listaPaquetes.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);

listaPaquetes.setLayoutManager(llm);
inicializarListaPaquetes();
inicializarAdaptador();
}
public void inicializarAdaptador(){
RVAdapterPaquete adaptador = new RVAdapterPaquete(paquetes);
listaPaquetes.setAdapter(adaptador);
}

public void inicializarListaPaquetes(){
paquetes = new ArrayList<Paquete>();

paquetes.add(new Paquete("CB111111","TK222222", "Amazon", "Conrado", "13/10/2013", "2", "2", "3.16"));
paquetes.add(new Paquete("CB111222","TK222222", "Amazon", "Conrado", "13/10/2013", "2", "2", "3.16"));
paquetes.add(new Paquete("CB113333","TK222222", "Amazon", "Conrado", "13/10/2013", "2", "2", "3.16"));
paquetes.add(new Paquete("CB114444","TK222222", "Amazon", "Conrado", "13/10/2013", "2", "2", "3.16"));

}}

адаптер

Открытый класс RVAdapterPaquete расширяет RecyclerView.Adapter {public RVAdapterPaquete (ArrayList paquetes) {this.paquetes = paquetes; } }

ArrayList<Paquete> paquetes;
@Override
public PaqueteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //Inflar o darle vida a nuestro layout
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_rastreo_resutados, parent, false);
return new PaqueteViewHolder(v);
}

@Override
public void onBindViewHolder(PaqueteViewHolder paqueteViewHolder, int position) {
//Asocia cada elemento de la lista con cada view
Paquete paquete = paquetes.get(position);
paqueteViewHolder.tvCB.setText(paquete.getCodigoBarra());
paqueteViewHolder.tvTracking.setText(paquete.getTracking());
paqueteViewHolder.tvRemitente.setText(paquete.getRemitente());
paqueteViewHolder.tvConsignatario.setText(paquete.getConsignatario());
paqueteViewHolder.tvFechaEnvio.setText(paquete.getFechaEnvio());
//paqueteViewHolder.tvContenido.setText(paquete.getContenido());
paqueteViewHolder.tvNumeroPiezas.setText(paquete.getPiezas());
paqueteViewHolder.tvPeso.setText(paquete.getPeso());
paqueteViewHolder.tvValorDeclarado.setText(paquete.getValorDeclarado());
}

@Override
public int getItemCount() { //Cantidad de elementos que contiene mi lista.
return paquetes.size();
}

public static class PaqueteViewHolder extends RecyclerView.ViewHolder{
//Obtiene las partes del xml a llenar

private TextView tvCB;
private TextView tvTracking;
private TextView tvRemitente;
private TextView tvConsignatario;
private TextView tvFechaEnvio;
//private TextView tvContenido;
private TextView tvNumeroPiezas;
private TextView tvPeso;
private TextView tvValorDeclarado;

public PaqueteViewHolder(View itemView) {
super(itemView);

tvCB = (TextView) itemView.findViewById(R.id.tvCBValue);
tvTracking = (TextView) itemView.findViewById(R.id.tvTrackingValue);
tvRemitente = (TextView) itemView.findViewById(R.id.tvRemitenteValue);
tvConsignatario = (TextView) itemView.findViewById(R.id.tvConsignatarioValue);
tvFechaEnvio = (TextView) itemView.findViewById(R.id.tvFechaEnvioValue);
// tvContenido = (TextView) itemView.findViewById(R.id.tvContenidoValue);
tvNumeroPiezas = (TextView) itemView.findViewById(R.id.tvNumeroPiezasValue);
tvPeso = (TextView) itemView.findViewById(R.id.tvPesoValue);
tvValorDeclarado = (TextView) itemView.findViewById(R.id.tvValorDeclaradoValue);
}
}

}

Класс данных

public class Paquete {
private String codigoBarra;
private String Tracking;
private String remitente;
private String consignatario;
private String fechaEnvio;
private String piezas;
private String peso;
private String valorDeclarado;
private String imgRecibida;

public Paquete() {
}

public Paquete(String codigoBarra, String tracking, String remitente, String consignatario, String fechaEnvio, String piezas, String peso, String valorDeclarado) {
this.codigoBarra = codigoBarra;
Tracking = tracking;
this.remitente = remitente;
this.consignatario = consignatario;
this.fechaEnvio = fechaEnvio;
this.piezas = piezas;
this.peso = peso;
this.valorDeclarado = valorDeclarado;
}

public String getCodigoBarra() {
return codigoBarra;
}

public void setCodigoBarra(String codigoBarra) {
this.codigoBarra = codigoBarra;
}

public String getTracking() {
return Tracking;
}

public void setTracking(String tracking) {
Tracking = tracking;
}

public String getRemitente() {
return remitente;
}

public void setRemitente(String remitente) {
this.remitente = remitente;
}

public String getConsignatario() {
return consignatario;
}

public void setConsignatario(String consignatario) {
this.consignatario = consignatario;
}

public String getFechaEnvio() {
return fechaEnvio;
}

public void setFechaEnvio(String fechaEnvio) {
this.fechaEnvio = fechaEnvio;
}

public String getPiezas() {
return piezas;
}

public void setPiezas(String piezas) {
this.piezas = piezas;
}

public String getPeso() {
return peso;
}

public void setPeso(String peso) {
this.peso = peso;
}

public String getValorDeclarado() {
return valorDeclarado;
}

public void setValorDeclarado(String valorDeclarado) {
this.valorDeclarado = valorDeclarado;
}

public String getImgRecibida() {
return imgRecibida;
}

public void setImgRecibida(String imgRecibida) {
this.imgRecibida = imgRecibida;
}

}

спросил(а) 2021-01-28T02:02:04+03:00 4 месяца, 3 недели назад
1
Решение
64

Вам нужно вызвать notifyDataSetChanged(); при установке адаптера в reclyclerView следующим образом:

public void inicializarAdaptador(){
RVAdapterPaquete adaptador = new RVAdapterPaquete(paquetes);
listaPaquetes.setAdapter(adaptador);
notifyDataSetChanged();
}

В противном случае переработчик не поймет, что вы установили новые данные.

ответил(а) 2021-01-28T02:02:04+03:00 4 месяца, 3 недели назад
44

В вашем пользовательском классе адаптера установите раздув макета на карту view.xml. Т.е.


public PaqueteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //Inflar o darle vida a nuestro layout
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview.xml, parent, false);
return new PaqueteViewHolder(v);
}

ответил(а) 2021-01-28T02:02:04+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема