Actualizar ReciclerView en Actividad

25 views
Skip to first unread message

Fernando Sigüenza

unread,
Mar 5, 2017, 12:15:33 PM3/5/17
to desarrollad...@googlegroups.com
Amigos como estan tengo un problema y espero puedan ayudarme
tengo una actividad para hacer pedidos y realice una interface interface que no se si sea la forma correcta o la mas adecuada pero creo que se ajusta a lo que necesito por ahora.
Hice un fragmento donde puse 3 cardview el uno con la cabecera del pedido, el segundo donde pundo un ReciclerView cursor adapter personalizado con la información de los items del pedido, y un tercero con la información del total del pedido. algo asi


Imágenes integradas 1


Al dar clic en el boton de cuadrado del toolbar, me ua nueva actividad para ir agregando items al pedido estos valores los tomo en el evento onActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (Activity.RESULT_OK == resultCode) {
switch (requestCode) {
case ArticuloAgregarCantidadActivity.REQUEST_ADD_ARTICULO:
TotalizarPedido();
break;
case REQUEST_UPDATE_DELETE_PEDIDO:
Integer can=data.getIntExtra("canIngresada",0);
String cod=data.getStringExtra("codiArticulo");
String des=data.getStringExtra("descArticulo");
String pre=data.getStringExtra("precioArticulo");
Float pre1=Float.parseFloat(pre.substring(1,pre.length()));
Toast.makeText(getActivity(), String.format("selecciono la cantidad %s",can),Toast.LENGTH_LONG).show();
DetallePedido linea = new DetallePedido("",1,cod,des,can,pre1,1,0,pre1);
mAdaptadorDetalle.items.add(linea);
reciclador.setAdapter(mAdaptadorDetalle);
TotalizarPedido();
break;
}
}
}

En este evento lo que hago es agregar a mi lista una nueva linea del detalle del pedido, y lo lo que quiero es que al agregar  la nueva linea de detalle en la lista del adaptador se refresque en la actividad dentro del cardview de items, pero al agregar el item a la lista visualmente siempre veo solo una, no se porque no se me refresca mi reciclerview con los items agreados

Hago un paso a paso y veo que en el mAdaptadorDetalle.item si se van agregando  el problema es solo visual

mi adaptador tiene lo siguiente



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

protected ArrayList<DetallePedido> items;

public PedidoArticuloAdapter(ArrayList<DetallePedido> items) {
this.items = items;
}


public static class ViewHolder extends RecyclerView.ViewHolder {
// Campos respectivos de un item
public TextView mItemPedido;
public TextView mCantidadPedido;
public TextView mPrecioPedido;
public TextView mTotalItemPedido;

public ViewHolder(View v) {
super(v);
mItemPedido = (TextView) v.findViewById(R.id.tv_descripcion_item_pedido);
mCantidadPedido = (TextView) v.findViewById(R.id.tv_cantidad_item_pedido);
mPrecioPedido = (TextView) v.findViewById(R.id.tv_precio_item_pedido);
mTotalItemPedido = (TextView) v.findViewById(R.id.tv_total_item_pedido);
}
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_pedido, parent, false);
return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
DetallePedido item = items.get(position);
holder.mItemPedido.setText(item.Nombre);
holder.mCantidadPedido.setText(Integer.toString(item.Cantidad));
holder.mPrecioPedido.setText(Double.toString(item.Precio));
holder.mTotalItemPedido.setText(Float.toString(item.Precio * item.Cantidad));
}

@Override
public int getItemCount() {
return items.size();
}


Cuando entre en el metodo onBindViewHolder, siempre veo que la posicion esta en 0, como puedo hacer para que se vara refrescando mi lista ?? Espero puedan ayudarme



Saludos


Fernando


--
Fernando Siguenza
Reply all
Reply to author
Forward
0 new messages