java - Android 而不是回收器 View 中的卡片 View ,该应用程序向我显示一个空白页面

标签 java android android-recyclerview adapter cardview

伙计们,我是 Android 编程新手,这是我实现的第二个 RecyclerView + cardview,但我不明白这有什么问题。该 Activity 表明:

Image from the blank activity instead the 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

公共(public)类 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"));

}}

适配器

公共(public)类 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;
}

}

最佳答案

您需要调用notifyDataSetChanged();当将适配器设置为 recyclerView 时,如下所示:

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

否则回收器不会意识到您设置了新数据。

关于java - Android 而不是回收器 View 中的卡片 View ,该应用程序向我显示一个空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618190/

相关文章:

java - 当另一个类型参数为 <T> 时如何引用第二个类型参数 <T1>

android - Google Geocoding API 限制

android - Android Studio中的重复条目

Android EditText 在 TableRow 中移动多行时

android - 如何自定义回收站 View 的网格布局管理器?

java - 如何将RecyclerView添加到LinearLayout(高度问题)

java - java中多个点之间的连续虚线(swing)

java - 如何通过java程序停止tail -f命令?

Android - 如何在滚动时停止在 Recyclerview 中重新加载图像

java - 在Java中的公共(public)数组中按属性对json对象列表进行分组