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) {
}
}
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) {
}
}
}