Fill a spinner inside RecyclerView

1

Hello I have a RecyclerView in which I want to place a spinner to place the amount I need of a product as well as to be able to delete an item. I appreciate who can guide me since the spinner is not working. I am driving an activity and an adapter: 1. This is the code of the activity.

public class Orders extends AppCompatActivity implements OnItemSelectedListener {

    private ImageButton iBVolver, borras;

    //private RecyclerView.Adapter adapter;
    private DataBaseManager managerCurso;
    private RecyclerView recycler;
    //private ProductoAdapter adapter;
    private RecyclerView.LayoutManager lManager;
    private List<Producto> listaItemsCursos;
    private int id_pedido;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pedidos);
        MultiDex.install(this);

        iBVolver = (ImageButton) findViewById(R.id.iBVolver);
        iBVolver.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent pys = new Intent(Pedidos.this, ServiciosyVeterinarias.class);
                startActivity(pys);
                Toast.makeText(getApplicationContext(), "Cargando Categorias", Toast.LENGTH_SHORT).show();
            }
        });

        managerCurso = new DataBaseManager(this);
        listaItemsCursos = managerCurso.getPedidoList();

        // Obtener el Recycler
        recycler = (RecyclerView) findViewById(R.id.pedidos);
        recycler.setHasFixedSize(true);

        // Usar un administrador para LinearLayout
        lManager = new LinearLayoutManager(this);
        recycler.setLayoutManager(lManager);

        // Crear un nuevo adaptador
        ProductoAdapter adapter = new ProductoAdapter(listaItemsCursos, this);
        recycler.setAdapter(adapter);

        recycler.addOnScrollListener(rVOnScrollListener);
        recycler.setItemAnimator(new DefaultItemAnimator());

        recycler.addOnItemTouchListener(new RecyclerItemClickListener(Pedidos.this,
                        new RecyclerItemClickListener.OnItemClickListener() {
                            @Override
                            public void onItemClick(View view, int position) {

                            }
                        })
        );
    }


    @Override
    protected void onDestroy() {
        managerCurso.cerrar();
        super.onDestroy();
    }


    // Este método sería comprobar que el desplazamiento recyclerview ha tocado fondo o no///
    private boolean isLastItemDisplaying(RecyclerView recyclerView) {
        if (recyclerView.getAdapter().getItemCount() != 0) {
            int lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
            if (lastVisibleItemPosition != RecyclerView.NO_POSITION && lastVisibleItemPosition == recyclerView.getAdapter().getItemCount() - 1)

                /*spinner = (Spinner) findViewById(R.id.cantidad);
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, cantidadPedido);
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(dataAdapter);*/
                return true;
        }
        return false;
    }

    // Método reemplazado para detectar el desplazamiento//
    private RecyclerView.OnScrollListener rVOnScrollListener = new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (isLastItemDisplaying(recyclerView)) {
            }
        }
    };

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String item = parent.getItemAtPosition(position).toString();
        Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
}
  • Adapter code:
  • public class ProductoAdapter extends RecyclerView.Adapter<ProductoAdapter.ProductoViewHolder> {
        //Cargando la imagen y el contexto
        private ImageLoader imageLoader;
        private Context mainContext;
        private LayoutInflater inflater;
    
    
        //Para almacenar una lista de todos los Clientes
        List<Producto> items;
    
        public ProductoAdapter(List<Producto> items, Context contexto) {
            super();
            this.items = items;
            this.mainContext = contexto;
            inflater = LayoutInflater.from(contexto);
        }
    
        @Override
        public ProductoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View v = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.mostrar_pedido, parent, false);
            ProductoViewHolder pHolder = new ProductoViewHolder(v);
            return pHolder;
        }
    
        @Override
        public void onBindViewHolder(ProductoViewHolder viewHolder, final int position) {
            final Producto item = items.get(position);
    
            imageLoader = CustomVolleyRequest.getInstance(mainContext).getImageLoader();
    
            viewHolder.txtpysId.setText(String.valueOf(item.getPysId()));
            viewHolder.iVPyS.setImageUrl(String.valueOf(item.getPysImagen()), imageLoader);
            viewHolder.txtnombre.setText(item.getPysNombre());
            viewHolder.txtdescrip.setText(item.getPysDescripcion());
            viewHolder.txtprecio.setText(String.valueOf(item.getPysPrecio()));
            viewHolder.txtcliNom.setText(item.getTienNombre());
            viewHolder.txtborrar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    removeItem(item);
                }
            });
    
            viewHolder.txtcant.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, addItem(ites)));
    
        }
    
        private void removeItem(Producto item) {
            int currPosition = items.indexOf(item);
            items.remove(currPosition);
            notifyItemRemoved(currPosition);
        }
    
    
        private Producto addItem(String ites) {
            addItem("1");
            addItem("2");
            addItem("3");
            addItem("4");
            addItem("5");
            addItem("6");
    
            return addItem(ites);
        }
    
        @Override
        public int getItemCount() {
            return items.size();
        }
    
        public class ProductoViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
            // Campos respectivos de un item
            protected TextView txtpysId;
            protected NetworkImageView iVPyS;
            ;
            protected TextView txtnombre;
            protected TextView txtdescrip;
            protected TextView txtprecio;
            protected Spinner txtcant;
            ;
            protected TextView txtcliNom;
            protected ImageButton txtborrar;
    
            public ProductoViewHolder(View v) {
                super(v);
                txtpysId = (TextView) v.findViewById(R.id.pysId);
                iVPyS = (NetworkImageView) v.findViewById(R.id.iVPyS);
                txtnombre = (TextView) v.findViewById(R.id.txtNombre);
                txtdescrip = (TextView) v.findViewById(R.id.txtVDescripcion);
                txtprecio = (TextView) v.findViewById(R.id.precio);
                txtcliNom = (TextView) v.findViewById(R.id.tVCliNombre);
                txtborrar = (ImageButton) v.findViewById(R.id.borrar);
                txtcant = (Spinner) v.findViewById(R.id.cantidad);
            }
    
            @Override
            public void onClick(View v) {
    
            }
    
        }
    }
    
        
    asked by Mario 10.08.2016 в 23:43
    source

    0 answers