private void Scan() { var scanner = new ZXing.Mobile.MobileBarcodeScanner() { UseCustomOverlay = false, BottomText = GetString(Resource.String.MENSAJE_SCAN) }; try { scanner.Scan().ContinueWith(t => RunOnUiThread( () => { if (t.Result != null) { var result = t.Result; Negocio.Elemento _elemento = new Negocio.Elemento(); _elemento.CodigoBarras = result.Text; _elemento.Scan(); Intent IntentDetalleElemento = new Intent(this, typeof(ElementoActivity)); IntentDetalleElemento.PutExtra(Negocio.Constantes.MENSAJE_IDELEMENTO, _elemento.IdElemento); IntentDetalleElemento.PutExtra(Negocio.Constantes.MENSAJE_CODIGOBARRAS, _elemento.IdElemento); IntentDetalleElemento.PutExtra(Negocio.Constantes.MENSAJE_MODO, Negocio.Constantes.MENSAJE_MODO); StartActivityForResult(IntentDetalleElemento, 0); } })); } catch (ZXing.ReaderException ex) { }; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); MobileBarcodeScanner.Initialize(Application); // Create your application here SetContentView(Resource.Layout.DetalleElemento); //inicializar dialogos UserDialogs.Init(Application); _elemento = new Negocio.Elemento(); if (savedInstanceState != null) { AccionEnCurso = (Negocio.Constantes.Acciones)savedInstanceState.GetInt(Negocio.Constantes.MENSAJE_ACCION); _elemento.IdElemento = savedInstanceState.GetInt(Negocio.Constantes.MENSAJE_IDELEMENTO); _elemento.GetElementoById(); } else { string Modo = Intent.GetStringExtra(Negocio.Constantes.MENSAJE_MODO); if (Modo == Negocio.Constantes.MENSAJE_MODO) { AccionEnCurso = Negocio.Constantes.Acciones.ACCIONES_NONE; _elemento.CodigoBarras = Intent.GetStringExtra(Negocio.Constantes.MENSAJE_CODIGOBARRAS); _elemento.Scan(); if (_elemento.IdElemento == 0) { //Mensaje indicando que no existe string TextoMensaje = GetString(Resource.String.MENSAJE_NO_SCAN); var result = UserDialogs.Instance.ConfirmAsync(new Acr.UserDialogs.ConfirmConfig { Message = TextoMensaje, OkText = GetString(Resource.String.MENSAJE_BOTON_OK), CancelText = GetString(Resource.String.MENSAJE_BOTON_CANCEL), }).ContinueWith(t => RunOnUiThread( () => { if (!t.Result) { this.Finish(); } else { AccionEnCurso = Negocio.Constantes.Acciones.ACCIONES_ADD; } })); } } else { _elemento.IdElemento = Intent.GetIntExtra(Negocio.Constantes.MENSAJE_IDELEMENTO, 0); if (_elemento.IdElemento != 0) { AccionEnCurso = Negocio.Constantes.Acciones.ACCIONES_NONE; } else { AccionEnCurso = Negocio.Constantes.Acciones.ACCIONES_ADD; } _elemento.GetElementoById(); } } View vBotonBack = FindViewById <View>(Resource.Id.BackButtonElemento); vBotonBack.Click += BotonBack_Click; var button = FindViewById <SatelliteMenu.SatelliteMenuButton>(Resource.Id.menuSateliteElemento); button.MenuItemClick += MenuItem_Click; LinearLayout linearLayoutProducto = FindViewById <LinearLayout>(Resource.Id.linearLayoutProducto); LinearLayout linearLayoutCategoria = FindViewById <LinearLayout>(Resource.Id.linearLayoutCategoria); Spinner spinnerGrupo = FindViewById <Spinner>(Resource.Id.spinnerGrupoElemento); EditText txtCodigo = FindViewById <EditText>(Resource.Id.txtCodigoBarras); TextView txt = FindViewById <TextView>(Resource.Id.txtBarraElemento); EditText txtEdit = FindViewById <EditText>(Resource.Id.txtEditElemento); // Spinner spinnerProducto = FindViewById<Spinner>(Resource.Id.spinnerProductoElemento); txt.Text = _elemento.Descripcion; txtEdit.Text = _elemento.Descripcion; switch (AccionEnCurso) { case Negocio.Constantes.Acciones.ACCIONES_NONE: button.AddItems(new[] { new SatelliteMenuButtonItem(Negocio.Constantes.MENU_ANADIR, Resource.Drawable.ic_add_circle_outline_black_24dp), new SatelliteMenuButtonItem(Negocio.Constantes.MENU_BORRAR, Resource.Drawable.ic_delete_black_24dp), new SatelliteMenuButtonItem(Negocio.Constantes.MENU_EDIT, Resource.Drawable.ic_create_black_24dp) }); linearLayoutCategoria.Visibility = ViewStates.Gone; linearLayoutProducto.Visibility = ViewStates.Gone; txt.Visibility = ViewStates.Visible; txtEdit.Visibility = ViewStates.Gone; txtCodigo.InputType = 0; if ((_elemento.CodigoBarras == "") || (_elemento.CodigoBarras == null)) { txtCodigo.Text = GetString(Resource.String.NOCODIGOBARRAS); } else { txtCodigo.Text = _elemento.CodigoBarras; } break; case Negocio.Constantes.Acciones.ACCIONES_ADD: case Negocio.Constantes.Acciones.ACCIONES_EDIT: button.AddItems(new[] { new SatelliteMenuButtonItem(Negocio.Constantes.MENU_SALVAR, Resource.Drawable.ic_save_black_24dp), new SatelliteMenuButtonItem(Negocio.Constantes.MENU_CANCELAR, Resource.Drawable.ic_clear_black_24dp), }); linearLayoutCategoria.Visibility = ViewStates.Visible; linearLayoutProducto.Visibility = ViewStates.Visible; List <Negocio.Grupo> ListaGrupo = GestorApp.myData.GetAllGrupos(); ListaGrupo.OrderBy(g => g.Descripcion); List <string> ListaGrupoString = GetDescripcionesGrupos(ListaGrupo); ArrayAdapter SpinnerAdapter = new ArrayAdapter(this, Resource.Layout.ProductLayoutSpinner, ListaGrupoString); spinnerGrupo.Adapter = SpinnerAdapter; Negocio.Grupo _grupo = _elemento.GetGrupo(); spinnerGrupo.ItemSelected += SpinnerGrupo_Changed; int posicion = ListaGrupoString.IndexOf(_grupo.Descripcion); spinnerGrupo.SetSelection(posicion); if ((_elemento.CodigoBarras == "") || (_elemento.CodigoBarras == null)) { txtCodigo.Text = GetString(Resource.String.NOCODIGOBARRAS); } else { txtCodigo.Text = _elemento.CodigoBarras; } txtCodigo.Click += TxtCodigo_Click; txt.Visibility = ViewStates.Gone; txtEdit.Visibility = ViewStates.Visible; break; } _elemento.GetExistencias(); var listView = FindViewById <ListView>(Resource.Id.lListaElemento); listView.Adapter = new Negocio.Adaptadores.ElementoAdapter(this, _elemento.lExistencias); }