Example #1
0
        //@Override
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_dynamiclistview);

            DynamicListView listView = (DynamicListView)FindViewById(Resource.Id.activity_dynamiclistview_listview);

            listView.AddHeaderView(LayoutInflater.From(this).Inflate(Resource.Layout.activity_dynamiclistview_header, listView, false));

            /* Setup the adapter */
            Com.Nhaarman.ListviewAnimations.ArrayAdapter <string> adapter = new MyListAdapter(this);
            SimpleSwipeUndoAdapter  simpleSwipeUndoAdapter = new SimpleSwipeUndoAdapter(adapter, this, new MyOnDismissCallback(adapter, this));
            AlphaInAnimationAdapter animAdapter            = new AlphaInAnimationAdapter(simpleSwipeUndoAdapter);

            animAdapter.setAbsListView(listView);
            //assert animAdapter.getViewAnimator() != null;
            animAdapter.getViewAnimator().setInitialDelayMillis(INITIAL_DELAY_MILLIS);
            listView.SetAdapter(animAdapter);

            /* Enable drag and drop functionality */
            listView.enableDragAndDrop();
            listView.setDraggableManager(new TouchViewDraggableManager(Resource.Id.list_row_draganddrop_touchview));
            listView.setOnItemMovedListener(new MyOnItemMovedListener(adapter, this));

            listView.OnItemLongClickListener = new MyOnItemLongClickListener(listView);

            /* Enable swipe to dismiss */
            listView.enableSimpleSwipeUndo();

            /* Add new items on item click */
            listView.OnItemClickListener = new MyOnItemClickListener(listView, this);
        }
Example #2
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Create your application here
            var arrayAdapter = new MyListAdapter(this);
            this.ListAdapter = arrayAdapter;
            this.ListView.TextFilterEnabled = true;

            this.ListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => {
                var toast = Toast.MakeText(this.Application, ((TextView)e.View).Text, ToastLength.Short);
                toast.Show();
            };
        }
		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);
			SetContentView (Resource.Layout.Main);

			ListAdapter = new MyListAdapter (this);

			FindViewById (Resource.Id.cancel_button).Click += delegate {
				Finish();
			};

			FindViewById (Resource.Id.ok_button).Click += delegate {
				Finish();
			};
		}
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);

            ListAdapter = new MyListAdapter(this);

            FindViewById(Resource.Id.cancel_button).Click += delegate {
                Finish();
            };

            FindViewById(Resource.Id.ok_button).Click += delegate {
                Finish();
            };
        }
        //@Override
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_stickylistheaders);

            StickyListHeadersListView listView = (StickyListHeadersListView)FindViewById(Resource.Id.activity_stickylistheaders_listview);
            listView.SetFitsSystemWindows(true);

            MyListAdapter adapter = new MyListAdapter(this);
            AlphaInAnimationAdapter animationAdapter = new AlphaInAnimationAdapter(adapter);
            StickyListHeadersAdapterDecorator stickyListHeadersAdapterDecorator = new StickyListHeadersAdapterDecorator(animationAdapter);
            stickyListHeadersAdapterDecorator.setListViewWrapper(new StickyListHeadersListViewWrapper(listView));

            //assert animationAdapter.getViewAnimator() != null;
            animationAdapter.getViewAnimator().setInitialDelayMillis(500);

            //assert stickyListHeadersAdapterDecorator.getViewAnimator() != null;
            stickyListHeadersAdapterDecorator.getViewAnimator().setInitialDelayMillis(500);

            listView.Adapter=stickyListHeadersAdapterDecorator;
        }
Example #6
0
        protected override void OnResume()
        {
            try
            {
                string status = "WIFI NETWORKS: ";
                string SSID = "";
                using (Android.Net.Wifi.WifiManager wifi = (Android.Net.Wifi.WifiManager)ApplicationContext.GetSystemService(Context.WifiService))
                {
                    if (wifi != null)
                    {
                        if (wifi.IsWifiEnabled)
                        {
                            using (WifiInfo wifiInfo = wifi.ConnectionInfo)
                            {
                                if (wifiInfo != null)
                                {
                                    using (NetworkInfo.DetailedState state = WifiInfo.GetDetailedStateOf(wifiInfo.SupplicantState))
                                    {
                                        if (state == NetworkInfo.DetailedState.Connected || state == NetworkInfo.DetailedState.ObtainingIpaddr)
                                        {
                                            SSID = wifiInfo.SSID;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            wifi.SetWifiEnabled(true);
                        }

                using (ConnectivityManager cm = (ConnectivityManager)GetSystemService(Context.ConnectivityService))
                {
                    if (cm != null)
                    {
                        using (NetworkInfo activeNetwork = cm.ActiveNetworkInfo)
                        {
                            if (activeNetwork != null && activeNetwork.IsConnected)
                            {
                                SSID = SSID.Replace("\"", "");
                                status = ": CONNECTED TO INTERNET. Select a network from the list below to modify or establish a connection.";
                                status = SSID + status;
                            }
                            else
                            {
                                if (activeNetwork == null)
                                {
                                    status = "WIFI NETWORKS: ";
                                }
                                else
                                {
                                    if (!string.IsNullOrEmpty(SSID))
                                    {
                                        status = " OBTAINING IP ADDRESS...";
                                        status = SSID + status;
                                    }
                                    else
                                    {
                                        status = "WIFI NETWORKS: ATTEMPTING CONNECTION...";
                                    }
                                }
                            }
                        }
                    }
                }
                IList\\ wifiScanList = wifi.ScanResults;
                    if (wifiScanList != null)
                    {
                        wifis = new string[wifiScanList.Count];
                        for (int i = 0; i \                        {
                            wifis[i] = ((wifiScanList[i]).ToString());
                        }
                        filtered = new List\\();
                        filtered.Add(status);
                        int counter = 0;
                        foreach (string eachWifi in wifis)
                        {
                            var rx = new string[] { "," };
                            string[] temp = eachWifi.Split(rx, StringSplitOptions.None);
                            string lval = temp[0].Substring(5).Trim();
                            if (!string.IsNullOrEmpty(lval) && lval.Length \>\ 3)
                            {
                                filtered.Add(lval);
                                counter++;
                            }
                        }
                    }
                    }
                }
                ListAdapter = new MyListAdapter(this);
            }
            catch (Exception)
            {
            }

            base.OnResume();
        }
		public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
		{

			base.OnCreateView (inflater, container, savedInstanceState);


			if (savedInstanceState != null) {
				//restore fragment here

			}




			View view = inflater.Inflate (Resource.Layout.Fragment2, container, false);
			//Toast.MakeText (Application.Context, "Estas en el fragmento 2", ToastLength.Long).Show ();

			//ANTES QUE NADA, CREAMOS LOS BOTONES, LOS INPUTS, LAS LAYOUTS Y LOS PROGRESSBAR, Y PORSUPUESTO EL LISTVIEW
			Button busqueda = view.FindViewById<Button> (Resource.Id.busqueda); //pestaña busqueda
			Button resultados = view.FindViewById<Button> (Resource.Id.resultados);//pestaña resultados

			LinearLayout botones = view.FindViewById<LinearLayout> (Resource.Id.linearLayout0); //capa de botones busqueda-resultados
			LinearLayout cuadbusqueda = view.FindViewById<LinearLayout> (Resource.Id.linearLayout1); //capa de cuadro de busqueda
			LinearLayout cuadresultados = view.FindViewById<LinearLayout> (Resource.Id.linearLayout3); //capa de cuadro de busqueda
			LinearLayout prevnext = view.FindViewById<LinearLayout> (Resource.Id.linearLayout4); //capa de botones siguiente y anterior

			EditText cad = view.FindViewById<EditText> (Resource.Id.cadena); //cuadro de texto que contiene las palabras a buscar
			//cad.Text="pulpo";
			Button buscar = view.FindViewById<Button> (Resource.Id.buscar); //botón de buscar en mi ciudad
			Button geo = view.FindViewById<Button> (Resource.Id.geo); //botón de buscar cerca de mi

			Button prev = view.FindViewById<Button> (Resource.Id.prev); //botón de anterior en los resultados
			Button next = view.FindViewById<Button> (Resource.Id.next); //boton de siguiente en los resultados

			ProgressBar wait = view.FindViewById<ProgressBar> (Resource.Id.progressBar1); //progress bar para la búsqueda
			ProgressBar waitpagina = view.FindViewById<ProgressBar> (Resource.Id.progressBar2); //progress bar para las paginas

			ListView reslista = view.FindViewById<ListView> (Resource.Id.listView1); //la lista donde se mmuestran los resultados de la busqueda

			TextView noresults = view.FindViewById<TextView> (Resource.Id.textView2); //texto que dice que no se encontraron resultados

			gps = this.Arguments;
				

			//CREAMOS LAS VARIABLES QUE VA A RECIBIR LA API

			string cadena="";

			string lat_long = "";
			string lat = "";
			string longt = "";

			string region_heredada = null;

			Typeface font = Typeface.CreateFromAsset(Activity.Assets, "Fonts/fa.ttf");
			buscar.SetTypeface(font, TypefaceStyle.Normal);
			geo.SetTypeface(font, TypefaceStyle.Normal);

			//TERMINAMOS DE CREAR LOS ELEMENTOS, AHORA SI A PROGRAMAR TODO LO DEMÁS
			busqueda.Click += (sender, e) => {
				
				busqueda.SetBackgroundResource(Resource.Drawable.busquedaactive); 
				resultados.SetBackgroundResource(Resource.Drawable.busqueda);
				//cambiar colores
				busqueda.SetTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
				resultados.SetTextColor(Android.Graphics.Color.ParseColor("#000000"));
				//hacer visible el cuadro de busqueda y hacer invisible el cuadro de resultados
				cuadbusqueda.Visibility=ViewStates.Visible;
				cuadresultados.Visibility = ViewStates.Gone;

			};

			resultados.Click += (sender, e) => {
				busqueda.SetBackgroundResource(Resource.Drawable.busqueda);
				resultados.SetBackgroundResource(Resource.Drawable.busquedaactive);
				//cambiar colores
				busqueda.SetTextColor(Android.Graphics.Color.ParseColor("#000000"));
				resultados.SetTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));
				//hacer invisible el cuadro de busqueda y visible el cuadro de resultados
				cuadbusqueda.Visibility=ViewStates.Gone;
				cuadresultados.Visibility = ViewStates.Visible;
				};

			//CATEGORIAS
			Spinner categ = view.FindViewById<Spinner> (Resource.Id.categorias);
							
			mItems = new List<Categoria> ();

			mItems.Add(new Categoria(){
				//NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
				Id = "",
				Nombre = "Selecciona una categoría"

			});



			//inicia lo de para traer las categorias
			Button getcats = view.FindViewById<Button> (Resource.Id.getcats);

			getcats.Click += async (sender, e) => {
				
				JsonValue objeto;

				try{
			categorias_array = await FetchWeatherAsync("http://plif.mx/mobile/get_cats_neg");
					objeto = categorias_array["respuesta"];

					foreach(JsonObject data in objeto){
							mItems.Add(new Categoria(){
							Id = data["categorias"]["id"],
							Nombre = data["categorias"]["nombre"]

						});
					}


				}catch(Exception ex){
					Toast.MakeText (Application.Context, "Ocurrió un error al recuperar las categorías", ToastLength.Long).Show ();
				}
			
			};

			getcats.PerformClick ();
			//termina lo de para traer las categorias



			MyNegociosAdapter adapter_c = new MyNegociosAdapter (Application.Context, mItems);
			categ.Adapter = adapter_c;

			//REGIONES
			Spinner regio = view.FindViewById<Spinner> (Resource.Id.regiones);
			ArrayAdapter<String> regadapter;

			//Android.Resource.Layout.SimpleSpinnerDropDownItem
			regadapter = new ArrayAdapter<string>(Application.Context, Resource.Layout.spinnerfuck, Resource.Id.company);

			rItems = new List<Region> ();

			//AGREGAMOS LAS REGIONES
			rItems.Add(new Region(){
				//NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
				Id = "9",
				Nombre = "Durango"

			});

			rItems.Add(new Region(){
				//NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
				Id = "2",
				Nombre = "Mazatlán"

			});

			rItems.Add(new Region(){
				//NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
				Id = "3",
				Nombre = "Torreón"

			});

			rItems.Add(new Region(){
				//NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
				Id = "4",
				Nombre = "Zacatecas"

			});

			MyRegionesAdapter adapter_r = new MyRegionesAdapter (Application.Context, rItems);
			regio.Adapter = adapter_r;


			categ.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs> (c_spinner_ItemSelected);
			regio.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs> (r_spinner_ItemSelected);

			buscar.Click += async (sender, e) => {
				counter=0;
				reslista.Adapter=null;
				//ESTE VA A TENER QUE SER ASÍNCRONO!
				cadena=cad.Text;
				noresults.Visibility=ViewStates.Gone;
				//ocultamos el teclado
				InputMethodManager imm = (InputMethodManager)Application.Context.GetSystemService(Context.InputMethodService);
				imm.HideSoftInputFromWindow(cad.WindowToken, 0);

				//primero deberíamos validar que el usuario haya introducido algún texto
				if((cadena=="" || cadena==null) && (cat_id=="" || cat_id == null) && (region_heredada == null || region_heredada=="")){
					Toast.MakeText (Application.Context, "¡Espera! Primero dinos que estás buscando.", ToastLength.Long).Show ();
				}else{
			     //antes que nada, comenzamos a armar la url desde la base

					string uri="http://plif.mx/filtrar.json?";

					//comenzaremos desde la pagina 1
					pagina=1;

					//añadimos la cadenas
					uri=uri+"cadena="+cadena;
					//añadimos la categoría
					uri=uri+"&categoria="+cat_id;
					//añadimos el lat_long, que en este caso será nulo
					uri=uri+"&lat_long="+lat_long;
					//añadimos la latitud que pues tambien será nula
					uri=uri+"&lat="+lat;
					//y la longitud igual
					uri=uri+"&long="+longt;
					//añadimos la región
					uri=uri+"&region="+reg_id;
					//guardamos la url hasta ahí para los botones prev next
					urlnextprev=uri;
					//y por último añadimos la página
					uri=uri+"&pagina="+pagina;

				   // Toast.MakeText (Application.Context, uri, ToastLength.Long).Show ();

					//mostrar los botones y los resultados, y ocultar el cuadro de busqueda
					botones.Visibility = ViewStates.Visible;
					cuadresultados.Visibility = ViewStates.Visible;
					cuadbusqueda.Visibility=ViewStates.Gone;
					prev.Visibility=ViewStates.Gone;
					next.Visibility=ViewStates.Gone;



					//mostramos el progressbar
					wait.Visibility=ViewStates.Visible;

					//cambiar el estilo de los botones busqueda y resultados
					busqueda.SetBackgroundResource(Resource.Drawable.busqueda);
					resultados.SetBackgroundResource(Resource.Drawable.busquedaactive);
					//cambiar colores
					busqueda.SetTextColor(Android.Graphics.Color.ParseColor("#000000"));
					resultados.SetTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));

					//cambiar el margen de la busqueda
					RelativeLayout.LayoutParams pms = new RelativeLayout.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
					pms.AddRule(LayoutRules.Below, Resource.Id.linearLayout0);
					pms.TopMargin = -90;
					cuadbusqueda.LayoutParameters=pms;

					Log.Debug("BUSQUEDA","LA URI ES: "+uri);
					//Y aqui vamos a pedirle al servidor que busque
					try{
						negocios = await FetchWeatherAsync(uri);
						objeto = negocios["respuesta"];

						negItems = new List<Negocio> ();

						foreach(JsonObject data in objeto){
							Log.Debug("GEO","Waaaaat!!!");
							//AQUI LOS AGREGAMOS
				
								negItems.Add(new Negocio(){
								NegocioId = WebUtility.HtmlDecode(data["Data"]["id"]),
								NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
								NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
								NegocioCat = WebUtility.HtmlDecode(data["Data"]["categoria"]),
								NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
								NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
								NegocioPrem = data["Data"]["premium"],
								NegocioNum = counter

							});

							//Toast.MakeText (Application.Context, "YUSS!!", ToastLength.Long).Show ();
							counter++;
						}

						wait.Visibility=ViewStates.Gone;

						if(counter==0){
							noresults.Visibility=ViewStates.Visible;
						}else{

						MyListAdapter res_adapter = new MyListAdapter (Application.Context, negItems);


						

						if(pagina<=1){
							prev.Enabled=false;
						}else{
							prev.Enabled=true;
						}

						if(counter<10){
							next.Enabled=false;
						}else{
							next.Enabled=true;
						}

						prev.Visibility=ViewStates.Visible;
						next.Visibility=ViewStates.Visible;
						reslista.Adapter = res_adapter;

						}//else si no se encontraron resultados

					}catch(Exception ex){
						Log.Debug("BUSQUEDA","Error"+ex);
						busqueda.PerformClick();
						Toast.MakeText (Application.Context, "Ooops! Parece que algo salió mal. ¿Por qué no lo intentas de nuevo?", ToastLength.Long).Show ();
					}


				
				}//ELSE SI LA CADENA NO ESTÁ VACIA
			};

			//AQUI CHECAMOS SI RECIBE UN ID DE REGION PARA LA PANTALLA PRINCIPAL
			region_heredada=gps.GetString("region");
			//Toast.MakeText (Application.Context, "la region es: "+region_heredada, ToastLength.Long).Show ();
			if(region_heredada != "nada"){
				reg_id = region_heredada;
				//Toast.MakeText (Application.Context, "la region es: "+reg_id+" SI HAY", ToastLength.Long).Show ();
				buscar.PerformClick ();

			}

			prev.Click += async (sender, e) => {
				if(pagina==1){
					//No hagas nada
				}else{
				pagina--;
				counter=0;

				prev.Visibility=ViewStates.Gone;
				next.Visibility=ViewStates.Gone;

				waitpagina.Visibility=ViewStates.Visible;

				string newuri = urlnextprev + "&pagina="+pagina;

				try{
					negocios = await FetchWeatherAsync(newuri);
					objeto = negocios["respuesta"];

					negItems = new List<Negocio> ();

						//esto es para la distancia en la geolocalizacion
						float dist=0;
						string dist_final="";
						double dist2=0;

					foreach(JsonObject data in objeto){
						//AQUI LOS AGREGAMOS


							try{
							//HAY QUE VALIDAR ESTO, SI NO VA A TRONAR
							dist=float.Parse(WebUtility.HtmlDecode(data["Data"]["distance"]));
								//Log.Debug (tag, "La Distancia de la BD es: "+dist);

							if(dist<1){
								dist=dist*1000;
								dist2=Math.Round(dist, 1);
								dist_final=dist2.ToString();
								dist_final=dist_final+" mts.";
							}else{
								dist2=Math.Round(dist, 1);
								dist_final=dist2.ToString();
								dist_final=dist_final+" kms.";
							}
							}catch(Exception ex){
								Log.Debug (tag, "Error detectado: NO HAY DISTANCIA");
							}


						negItems.Add(new Negocio(){
							NegocioId = WebUtility.HtmlDecode(data["Data"]["id"]),
							NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
							NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
							NegocioCat = WebUtility.HtmlDecode(data["Data"]["categoria"]),
							NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
							NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
						    NegocioPrem = data["Data"]["premium"],
							NegocioNum = counter,
								NegocioDist = dist_final


						});

						//Toast.MakeText (Application.Context, "YUSS!!", ToastLength.Long).Show ();
						counter++;
					}

					MyListAdapter res_adapter = new MyListAdapter (Application.Context, negItems);




					if(pagina<=1){
						prev.Enabled=false;
					}else{
						prev.Enabled=true;
					}

					if(counter<10){
						next.Enabled=false;
					}else{
						next.Enabled=true;
					}



					prev.Visibility=ViewStates.Visible;
					next.Visibility=ViewStates.Visible;

					waitpagina.Visibility=ViewStates.Gone;

					reslista.Adapter = res_adapter;




				}catch(Exception ex){
					if(pagina<=1){
						prev.Enabled=false;
					}else{
						prev.Enabled=true;
					}

					prev.Visibility=ViewStates.Visible;
					next.Visibility=ViewStates.Visible;

					waitpagina.Visibility=ViewStates.Gone;

					Toast.MakeText (Application.Context, "Oops! Parece que algo salió mal. ¿Por qué no oprimes \"Anterior\" para intentarlo de nuevo?", ToastLength.Long).Show ();
				}
			}//else si la pagina no es la primera
					
			};

			next.Click += async (sender, e) => {
				pagina++;
				counter=0;

				prev.Visibility=ViewStates.Gone;
				next.Visibility=ViewStates.Gone;

				waitpagina.Visibility=ViewStates.Visible;

				string newuri = urlnextprev + "&pagina="+pagina;

				try{
					negocios = await FetchWeatherAsync(newuri);
					objeto = negocios["respuesta"];

					negItems = new List<Negocio> ();

					//esto es para la distancia en la geolocalizacion
					float dist=0;
					string dist_final="";
					double dist2=0;

					foreach(JsonObject data in objeto){
						//AQUI LOS AGREGAMOS

						try{
							//HAY QUE VALIDAR ESTO, SI NO VA A TRONAR
							dist=float.Parse(WebUtility.HtmlDecode(data["Data"]["distance"]));

							if(dist<1){
								dist=dist*1000;
								dist2=Math.Round(dist, 1);
								dist_final=dist2.ToString();
								dist_final=dist_final+" mts.";
							}else{
								dist2=Math.Round(dist, 1);
								dist_final=dist2.ToString();
								dist_final=dist_final+" kms.";
							}
						}catch(Exception ex){
							Log.Debug (tag, "Error detectado: NO HAY DISTANCIA");
						}

						negItems.Add(new Negocio(){
							NegocioId = WebUtility.HtmlDecode(data["Data"]["id"]),
							NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
							NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
							NegocioCat = WebUtility.HtmlDecode(data["Data"]["categoria"]),
							NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
							NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
							NegocioPrem = data["Data"]["premium"],
							NegocioNum = counter,
							NegocioDist = dist_final

						});

						//Toast.MakeText (Application.Context, "YUSS!!", ToastLength.Long).Show ();
						counter++;
					}

					MyListAdapter res_adapter = new MyListAdapter (Application.Context, negItems);




					if(pagina<=1){
						prev.Enabled=false;
					}else{
						prev.Enabled=true;
					}

					if(counter<10){
						next.Enabled=false;
					}else{
						next.Enabled=true;
					}



					prev.Visibility=ViewStates.Visible;
					next.Visibility=ViewStates.Visible;

					waitpagina.Visibility=ViewStates.Gone;

					reslista.Adapter = res_adapter;




				}catch(Exception ex){
						if(pagina<=1){
						prev.Enabled=false;
					}else{
						prev.Enabled=true;
					}

					prev.Visibility=ViewStates.Visible;
					next.Visibility=ViewStates.Visible;

					waitpagina.Visibility=ViewStates.Gone;

					Toast.MakeText (Application.Context, "Oops! Parece que algo salió mal. ¿Por qué no oprimes \"Siguiente\" para intentarlo de nuevo?", ToastLength.Long).Show ();
				}

			};

			//BOTON DE GEOLOCALIZACION
			geo.Click += async (sender, e) => {
				Log.Debug(tag, "Si clickeó");



				string longitud=gps.GetString("longitud");
				string latitud=gps.GetString("latitud");
				//cad.Text=gps.GetString("longitud")+","+gps.GetString("latitud");

				//HAY QUE CONVERTIR LAS COMAS DE LAS COORDENADAS EN PUNTOS PARA QUE NO MARQUE ERROR EL SERVIDOR
				//input.Replace("_::_", "Areo");
				longitud=longitud.Replace(",",".");
				latitud=latitud.Replace(",",".");

				cadena=cad.Text;
				noresults.Visibility=ViewStates.Gone;
				//ocultamos el teclado
				InputMethodManager imm = (InputMethodManager)Application.Context.GetSystemService(Context.InputMethodService);
				imm.HideSoftInputFromWindow(cad.WindowToken, 0);


				if(longitud=="nada" || latitud == "nada"){
					Toast.MakeText (Application.Context, "Parece que aún no hemos podido determinar tu ubicación. Toca para intentarlo de nuevo!", ToastLength.Long).Show ();
				}else{
					if(longitud=="nogps" || latitud == "nogps"){
						Toast.MakeText (Application.Context, "Tienes el GPS y la ubicación desactivados, por favor actívalos!", ToastLength.Long).Show ();
					}else{
						//Toast.MakeText (Application.Context, "Latitud: "+latitud+" Longitud: "+longitud, ToastLength.Long).Show ();

						//AQUI VAMOS A ARMAR TODO!

						//INICIA BUSQUEDA
						//antes que nada, comenzamos a armar la url desde la base

						string uri="http://plif.mx/filtrar.json?";

						//comenzaremos desde la pagina 1
						pagina=1;
						reslista.Adapter=null;

						//añadimos la cadena
						uri=uri+"cadena="+cadena;
						//añadimos la categoría
						uri=uri+"&categoria="+cat_id;
						//añadimos el lat_long
						//uri=uri+"&lat_long="+"(6371*acos(cos(radians("+latitud+")*cos(radians(geo_lat))*cos(radians(geo_long)-radians("+longitud+"))+sin(radians("+latitud+"))*sin(radians(geo_lat))))";
						//uri=uri+"&lat_long="+"(6371*acos(cos(radians("+latitud+"))*cos(radians(geo_lat))*cos(radians(geo_long)-radians("+longitud+"))+sin(radians("+latitud+"))*sin(radians(geo_lat))))";
						uri=uri+"&lat_long="+"&lat_long=%28+6371+*+acos%28+cos%28+radians%28"+latitud+"+%29+%29+*+cos%28+radians%28+geo_lat+%29+%29+*+cos%28+radians%28+geo_long+%29+-+radians%28"+longitud+"%29+%29+%2B+sin%28+radians%28"+latitud+"%29+%29+*+sin%28+radians%28+geo_lat+%29+%29+%29+%29+";
						//añadimos la latitud 
						uri=uri+"&lat="+latitud;
						//y la longitud igual
						uri=uri+"&long="+longitud;
						//añadimos la región
						uri=uri+"&region="+reg_id;
						//guardamos la url hasta ahí para los botones prev next
						urlnextprev=uri;
						//y por último añadimos la página
						uri=uri+"&pagina="+pagina;

						//cad.Text=uri;

						//Toast.MakeText (Application.Context, uri, ToastLength.Long).Show ();

						//mostrar los botones y los resultados, y ocultar el cuadro de busqueda
						botones.Visibility = ViewStates.Visible;
						cuadresultados.Visibility = ViewStates.Visible;
						cuadbusqueda.Visibility=ViewStates.Gone;
						prev.Visibility=ViewStates.Gone;
						next.Visibility=ViewStates.Gone;



						//mostramos el progressbar
						wait.Visibility=ViewStates.Visible;

						//cambiar el estilo de los botones busqueda y resultados
						busqueda.SetBackgroundResource(Resource.Drawable.busqueda);
						resultados.SetBackgroundResource(Resource.Drawable.busquedaactive);
						//cambiar colores
						busqueda.SetTextColor(Android.Graphics.Color.ParseColor("#000000"));
						resultados.SetTextColor(Android.Graphics.Color.ParseColor("#FFFFFF"));

						//cambiar el margen de la busqueda
						RelativeLayout.LayoutParams pms = new RelativeLayout.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
						pms.AddRule(LayoutRules.Below, Resource.Id.linearLayout0);
						pms.TopMargin = -90;
						cuadbusqueda.LayoutParameters=pms;

						Log.Debug("GEO","LA URI ES: "+uri);

						//Y aqui vamos a pedirle al servidor que busque
						try{
							Log.Debug("GEO","ENTRAMOS");
							negocios = await FetchWeatherAsync(uri);
							objeto = negocios["respuesta"];
							Log.Debug("GEO","PASAMOS LA ASIGNACION");

							negItems = new List<Negocio> ();

							float dist=0;
							string dist_final;
							double dist2=0;

							foreach(JsonObject data in objeto){
								Log.Debug("GEO","Entramos a FOREACH");
								//AQUI LOS AGREGAMOS

								//INICIA VERIFICACION DE LA IMAGEN
								//TERMINA VERIFICACION DE LA IMAGEN
								dist=float.Parse(WebUtility.HtmlDecode(data["Data"]["distance"]));

								if(dist<1){
									dist=dist*1000;
									dist2=Math.Round(dist, 1);
									dist_final=dist2.ToString();
									dist_final=dist_final+" mts.";
								}else{
									dist2=Math.Round(dist, 1);
									dist_final=dist2.ToString();
									dist_final=dist_final+" kms.";
								}

								negItems.Add(new Negocio(){
									
									NegocioId = WebUtility.HtmlDecode(data["Data"]["id"]),
									NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
									NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
									NegocioCat = WebUtility.HtmlDecode(data["Data"]["categoria"]),
									NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
									NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
									NegocioPrem = data["Data"]["premium"],
									NegocioDist = dist_final,
									NegocioNum = counter

								});

								//Toast.MakeText (Application.Context, "YUSS!!", ToastLength.Long).Show ();
								counter++;
							}

							wait.Visibility=ViewStates.Gone;

							if(counter==0){
								noresults.Visibility=ViewStates.Visible;
							}else{

								MyListAdapter res_adapter = new MyListAdapter (Application.Context, negItems);




								if(pagina<=1){
									prev.Enabled=false;
								}else{
									prev.Enabled=true;
								}

								if(counter<10){
									next.Enabled=false;
								}else{
									next.Enabled=true;
								}

								prev.Visibility=ViewStates.Visible;
								next.Visibility=ViewStates.Visible;
								reslista.Adapter = res_adapter;

							}//else si no se encontraron resultados

						}catch(Exception ex){
							Log.Debug("GEO","El error: "+ex);
							busqueda.PerformClick();
							Toast.MakeText (Application.Context, "Ooops! Parece que algo salió mal. ¿Por qué no lo intentas de nuevo? "+ex, ToastLength.Long).Show ();
						}


						//TERMINA BUSQUEDA



					}//ELSE GPS DESACTIVADO
				}//ELSE NO SE HA ENCONTRADO LA UBICACION


			};

			reslista.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => {
				//Toast.MakeText (Application.Context, "El ID del negocio es: "+negItems [e.Position].NegocioId, ToastLength.Long).Show ();

				if(negItems[e.Position].NegocioPrem!="0"){
					//Toast.MakeText (Application.Context, negItems [e.Position].NegocioName+" Es premium!!"+" NegocioPrem es: "+negItems[e.Position].NegocioPrem, ToastLength.Long).Show ();
					var negocio = new Intent (this.Activity, typeof(PerfilPremium));
					negocio.PutExtra("id",negItems [e.Position].NegocioId);
					negocio.PutExtra("nombre",negItems [e.Position].NegocioName);
					negocio.PutExtra("direccion",negItems [e.Position].NegocioDir);
					negocio.PutExtra("categoria",negItems [e.Position].NegocioCat);
					negocio.PutExtra("calificacion",negItems [e.Position].NegocioCal);

					StartActivity (negocio);
				}else{

				var negocio = new Intent (this.Activity, typeof(PerfilNegocio));
				negocio.PutExtra("id",negItems [e.Position].NegocioId);
				negocio.PutExtra("nombre",negItems [e.Position].NegocioName);
				negocio.PutExtra("direccion",negItems [e.Position].NegocioDir);
				negocio.PutExtra("categoria",negItems [e.Position].NegocioCat);
				negocio.PutExtra("calificacion",negItems [e.Position].NegocioCal);

				StartActivity (negocio);
				}

				//StartActivity(typeof(PerfilNegocio));
				//AQUI INCICIAMOS LA ACTIVIDAD DE PERFIL Y LE PASAMOS DATOS



				/*
				var myActivity = (MainActivity) this.Activity;
				myActivity.VerNegocio(negItems [e.Position].NegocioId);
				*/

			};
		
			return view;
		}
		public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
		{
			page = -1;

			View view = inflater.Inflate (Resource.Layout.Fragment3, container, false);

			Button descubrir = view.FindViewById<Button> (Resource.Id.button1);
			Button regresar = view.FindViewById<Button> (Resource.Id.button2);
			//Button lel = view.FindViewById<Button> (Resource.Id.button3);

			ProgressBar cargando = view.FindViewById<ProgressBar> (Resource.Id.progressBar1);
			ProgressBar masneg = view.FindViewById<ProgressBar> (Resource.Id.progressBar2);



			descubrir.Click += async (sender, e) => {
				counter=0;
				page++;
				descubrir.Visibility=ViewStates.Gone;
				regresar.Visibility=ViewStates.Gone;


				if(page>-1 && page!=0){
				masneg.Visibility=ViewStates.Visible;
				}

				mListView = view.FindViewById<ListView> (Resource.Id.listView1);

				try{

				//obtenemos los del servidor según la página en la que estamos.
		        negocios = await FetchWeatherAsync("http://plif.mx/mobile/get_last_neg_add?pag="+page);

				objeto = negocios["respuesta"];
									
				
					mItems = new List<Negocio> ();

				foreach(JsonObject data in objeto){
						//AQUI LOS AGREGAMOS
						//mItems.Add(WebUtility.HtmlDecode(data["Data"]["titulo"]));

						mItems.Add(new Negocio(){
							NegocioId = WebUtility.HtmlDecode(data["Data"]["id"]),
							NegocioName = WebUtility.HtmlDecode(data["Data"]["titulo"]),
							NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
							NegocioCat = WebUtility.HtmlDecode(data["Data"]["nombre"]),
							NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
							NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
							NegocioNum = counter

						});

						counter++;
				}

					//Toast.MakeText (Application.Context, "llegamos?", ToastLength.Long).Show ();


//AQUI CARGA LOS NEGOCIOS
				MyListAdapter adapter = new MyListAdapter (Application.Context, mItems);
								    
				mListView.Adapter = adapter;
				
					cargando.Visibility=ViewStates.Gone;
					masneg.Visibility=ViewStates.Gone;

					descubrir.Visibility=ViewStates.Visible;

					if(page==0){
						regresar.Visibility=ViewStates.Gone;
					}else{
						regresar.Visibility=ViewStates.Visible;
					}



				}catch(Exception ex){
					Toast.MakeText (Application.Context, "Ocurrió un error al recuperar los negocios", ToastLength.Long).Show ();
					masneg.Visibility=ViewStates.Gone;
				}

			};

			//AQUI INICIA EL BOTON DE REGRESAR!!!!
				regresar.Click += async (sender, e) => {
				counter=0;
				page--;
				descubrir.Visibility=ViewStates.Gone;
				regresar.Visibility=ViewStates.Gone;

				masneg.Visibility=ViewStates.Visible;


				try{

					//obtenemos los del servidor según la página en la que estamos.
					negocios = await FetchWeatherAsync("http://plif.mx/mobile/get_last_neg_add?pag="+page);

					objeto = negocios["respuesta"];

					mListView = view.FindViewById<ListView> (Resource.Id.listView1);
					mItems = new List<Negocio> ();

					foreach(JsonObject data in objeto){
						//mItems.Add(WebUtility.HtmlDecode(data["Data"]["titulo"]));
					

						mItems.Add(new Negocio(){
							NegocioId = WebUtility.HtmlDecode( data["Data"]["id"]),
							NegocioName = WebUtility.HtmlDecode( data["Data"]["titulo"]),
							NegocioDir = WebUtility.HtmlDecode(data["Data"]["geo_calle"]+" "+data["Data"]["geo_numero"]+" "+data["Data"]["geo_colonia"]),
							NegocioCat = WebUtility.HtmlDecode(data["Data"]["nombre"]),
						    NegocioFoto = WebUtility.HtmlDecode(data["Data"]["ruta"]),
							NegocioCal = WebUtility.HtmlDecode(data["Data"]["calificacion"]),
							NegocioNum = counter
						});
					
						counter++;
					}

					MyListAdapter adapter = new MyListAdapter (Application.Context, mItems);
					mListView.Adapter = adapter;

					cargando.Visibility=ViewStates.Gone;
					masneg.Visibility=ViewStates.Gone;

					descubrir.Visibility=ViewStates.Visible;

					if(page==0){
						regresar.Visibility=ViewStates.Gone;
					}else{
						regresar.Visibility=ViewStates.Visible;
					}


				}catch(Exception ex){
					Toast.MakeText (Application.Context, "Ocurrió un error al recuperar los negocios", ToastLength.Long).Show ();
					masneg.Visibility=ViewStates.Gone;
				}

			};

			descubrir.PerformClick ();

			mListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => {
				//Toast.MakeText (Application.Context, "El ID del negocio es: "+negItems [e.Position].NegocioId, ToastLength.Long).Show ();

				var negocio = new Intent (this.Activity, typeof(PerfilNegocio));
				negocio.PutExtra("id",mItems [e.Position].NegocioId);
				negocio.PutExtra("nombre",mItems [e.Position].NegocioName);
				negocio.PutExtra("direccion",mItems [e.Position].NegocioDir);
				negocio.PutExtra("categoria",mItems [e.Position].NegocioCat);
				negocio.PutExtra("calificacion",mItems [e.Position].NegocioCal);

				StartActivity (negocio);

				//StartActivity(typeof(PerfilNegocio));
				//AQUI INCICIAMOS LA ACTIVIDAD DE PERFIL Y LE PASAMOS DATOS



				/*
				var myActivity = (MainActivity) this.Activity;
				myActivity.VerNegocio(negItems [e.Position].NegocioId);
				*/

			};

			return view;
		}