2016-07-27 3 views
0

jungs ich bin neu in android programmierung und das ist die zweite RecyclerView + cardview, die ich implementieren, aber ich kann nicht bekommen, was ist falsch mit diesem. Die Aktivität zeigt dies:Android stattdessen ein cardview in einem recyclerview die app zeigen mir eine leere seite

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 class ExportacionesRastreoPaqueteActivity AppCompatActivity erstreckt {

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")); 

}} 

Adapter

public class RVAdapterPaquete RecyclerView.Adapter erstreckt { public RVAdapterPaquete (Array 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); 
    } 
} 

}

Datenklasse

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; 
} 

}

+1

Problem gelöst war es public void onCreate (Bundle savedInstanceState, PersistableBundle PersistentState) { super.onCreate (savedInstanceState, PersistentState); –

Antwort

1

Sie müssen notifyDataSetChanged nennen(); wenn der Adapter-Set so reclyclerView:

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

Ansonsten ist der Recycler nicht erkennen, dass Sie neue Daten gefassten haben.

+0

Versuchen Sie, Ihre CardView-Dimensionen von "sp" zu "dp" zu ändern, wenn Sie Standardpixel anstelle von Dichtepixeln verwenden. Alle Ansichten in Android müssen in Dichtepixeln und nicht in Standardpixeln gemessen werden. –

+0

Was ist NotifyDataSetChanged()? –

+0

Ist eine RecyclerView-Methode, um überhöhte Daten in der Ansicht zu aktualisieren. Sie können die Dokumentation von Android-Klassen sehen, indem Sie ctrl oder command in mac gedrückt halten und auf den Methodennamen klicken. –

0

Setzen Sie das Layout in Ihrer benutzerdefinierten Adapterklasse auf den Wert der Karte view.xml. I.e.

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); 
} 
Verwandte Themen