¿Cual es la alternativa de fragment o el nuevo componente en android?

Por que fragment no funciona, me dice fragment deprecated cuando instancio me sale error:

 Fragment fra = new usersFragment(); 

Y cuando quiero reemplazar tambien me sale error, se marca de rojo ,no funciona para nada

getSupportFragmentManager().beginTransaction()                     .replace(R.id.container, fra)                     .commit(); 

Si fragment no funciona,cual es al aletrnativa o el nuevo componente el que tengo que usar?

eliminar y crear un nuevo elemento en el DOM con JS y AJAX

Tengo un problema a la hora de crear un nuevo icono.

Lo primero que hago es listar los usuarios a mediante un bucle:

    <div class='plan'>                 <h2 class='plan-title'><?php echo $  nexo->getNombreModelo(). ' ' . $  nexo->getApellidosModelo(). ' ' .$  nexo->getId(). ' ' .$  nexo->getConfirmacion() ?></h2>                 <h2 class='plan-title' id="costeHora"><?php echo $  nexo->getCosteHora() . ' €/H' ?></h2>                 <img class='foto' src='../img/<?php echo $  nexo->getFoto() ?>'>                 <ul class='datos-empleado'>                     <li><strong>ID: </strong><?php echo $  nexo->getIdEmpleadoModelo() ?></li>                     <li><strong>DEPARTAMENTO: </strong><?php echo $  nexo->getDepartamento() ?></li>                     <li><strong>EMAIL: </strong> <?php echo $  nexo->getEmail() ?> </li>                     //con este método pinto los iconos                     <?php echo $  this->pintarAsistencia($  nexo->getConfirmacion(), $  nexo->getId() ); ?>                      <div class="btn-anula-invitacion" data-id-costeEmpleado="<?php echo $  nexo->getCosteHora() ?>"                     data-id-reunion="<?php echo $  nexo->getIdReunion_fk() ?>"                      data-id-nexo="<?php echo $  nexo->getId() ?>"><i class="fas fa-user-slash"></i></div>                 </ul>             </div> 

este es el método con el que pinto esos iconos (el que llamo desde el bucle):

public function pintarAsistencia($  valorConfirmacion, $  idNexo){      if($  valorConfirmacion == 0){          echo "<div class='btn-confirma-invitacion' data-id-nexo='".$  idNexo."'><i class='fas fa-question-circle'></i></div>";     }else{         echo "<div><i class='fas fa-check-circle'></i></div>";     } } 

Todo esto hace que se muestre una vista en la que aparece mi lista de empleados con los siguientes valores:

introducir la descripción de la imagen aquí

Cuando abro la página, el bucle llama a la BBDD y lee un campo en la tabla del empleado que tiene 1 o 0. Si tiene 1, pinta un check verde, pero si tiene un 0, pinta una interrogación amarilla.

A la hora de confirmar la asistencia, quiero hacer click en la interrogación amarilla, que esta se convierta en un check verde y no se pueda hacer click de nuevo en ese icono.

Para eso he hecho lo siguiente:

    function confirmarInvitacion(e) {  //Recojo el btn-confirma-invitacion que pinto con mi método pintarAsistencia().      if (e.target.parentElement.classList.contains('btn-confirma-invitacion')) {  //recojo este parámetro que voy a enviar al controlador         const idNexo = e.target.parentElement.getAttribute('data-id-nexo');          console.log(idNexo);         const xhr = new XMLHttpRequest(); //Mando toda la información al controlador y este inserta mi registro.         xhr.open('GET', `../controller/empleado_reunion_controlador.php?idNexo=$  {idNexo}&accion=confirmar`, true);          xhr.onload = function() {             if (this.status === 200) {                 console.log(xhr.responseText);                 Swal.fire({                     position: 'center',                     type: 'success',                     title: 'Asistencia confirmada',                     showConfirmButton: false,                     timer: 1500                 })                 setTimeout(() => {  //Aquí viene el  problema. Elimino el icono de interrogación (porque ya ha confirmado)                     e.target.remove();  //creo un icono de check verde nuevo.                     const iconoConfirmado = document.createElement('i');                     iconoConfirmado.classList.add('fas', 'fa-check-circle');  //lo meto dentro de mi btn-confirma-invitacion.                      const botonNuevo = document.querySelector('.btn-confirma-invitacion');                     botonNuevo.appendChild(iconoConfirmado);                 }, 2000);             }          }          xhr.send();     } } 

Ahora lo que ocurre, es que el icono de la interrogación se elimina y elcheck verde aparece en el primer registro que el DOM encuentra con un btn-confirmar-invitacion. Adjunto imagen de lo que ocurre.

introducir la descripción de la imagen aquí

Si refresco la página, todo se pinta correctamente.

¿Alguien sabe como puedo hacer para que al hacer click en la interrogación, me pinte el check verde en el mismo registro en el que estoy?

Espero haber sido claro!! gracias por la ayuda!!!

Asignar nuevo valor dentro de un vector de objetos

tengo un vector vropa al que quiero aplicar un método según la categoría, por ejemplo, aplicar descuento a todos los objetos cuya categoría sea Pantalón, el problema que tengo es que al recorrer el vector me pregunta el porcentaje a aplicar a cada instancia y lo que quiero yo es que el descuento se aplique a todos los productos cuya categoría coincida a la indicada por consola:

 public cdouble getPrecioDescuento() {             Scanner teclado = new Scanner (System.in);             double descuento;             System.out.print("Ingrese el porcentaje de descuento: ");             descuento = Double.parseDouble(teclado.nextLine());              return this.precio * (descuento / 100);          }     //*****************METODO DESCUENTO*************************      public void descuentoCategoria () {              Scanner teclado = new Scanner(System.in);             String categoria;              System.out.print("Ingrese la categoría para descuento: ");             categoria = teclado.nextLine();              for (int i = 0; i < vropa.size(); i++) {                  if(vropa.elementAt(i).getCategoria().compareTo(categoria) ==0) {                     vropa.elementAt(i).Setprecio(vropa.elementAt(i).getPrecioDescuento());     }     } } 

como dar de alta nuevo evento en google calendar con php

Tengo u a clase con la que identifico a los usuarios con google, que se llama GoogleAuth, alli tengo un constructor que recibe al mismo cliente, cuando se logra identificar se inserta un evento en el calendario correctamente, aqui el codigo

 public function evento(){     $  eventName = "Nombre del evento";     $  eventDescription = "Descripción del evento";     $  eventStartTime = "2019-05-30T13:00"; //Hora inicial del evento     $  eventEndTime = "2019-05-30T14:00"; // //Hora final del evento      //$  _SESSION['aux']=$  this->client;     $  client= $  this->client;      if (isset($  _SESSION['access_token']) && $  _SESSION['access_token']) {          $  client->setAccessToken($  _SESSION['access_token']);      $  service = new Google_Service_Calendar($  client);      $  event = new Google_Service_Calendar_Event(array(       'summary' => $  eventName,       'description' => $  eventDescription,       'start' => array(         'dateTime' => $  eventStartTime.':00-06:00'       ),       'end' => array(         'dateTime' => $  eventEndTime.':00-06:00'       ),         'reminders' => array(         'useDefault' => FALSE,         'overrides' => array(           array('method' => 'email', 'minutes' => 24 * 60),           array('method' => 'popup', 'minutes' => 10),         ),       ),     ));      $  calendarId = 'primary';     $  event = $  service->events->insert($  calendarId, $  event);     printf('Event created: %s\n', $  event->htmlLink);     echo "HOLAS"; } } 

el detalle esta es que no se como llamarlo desde otra clase externa, es decir, tengo un archivo en php con la función de alta nuevo evento, el cual me permite guardar el evento en una base de datos, pero antes de so yo quiero que se sincronice en google calendar

switch($  opcion){     case 'registrar':         registrar($  identificador, $  tipoevento, $  fecha, $  hora, $  observaciones, $  conexion);       break;      default:         $  informacion["respuesta"]="OPCION_VACIA";         echo json_encode($  informacion);     break; } 

Nada mas que no se como llamar al evento sin reiniciar el constructor, ayuda por favor

Powerapps crear nuevo registro filtrando

Me gustaría que a la hora de crear un nuevo elemento con la función Patch(Default). Este nuevo elemento de compone de un nombre y un código. Antes de crear el elemento me gustaría que comprobara si ese código ya existe y si existe que no cree el registro. Este es el código que acabo de desarrollar. Patch( ‘BBDD’; Defaults(‘BBDD’); {Título: Título}; {‘Codigo’: Codigo}; ) Muchas gracias.

Insertar un coeficiente nuevo para que se sume al que tiene el mismo grado

Tengo un codigo que requiere lo siguiente: -Necesita insertar polinomios, primero el coeficiente y despues el grado. -Mostrar los elementos de la lista -Insertar un coeficiente nuevo y sumarlo al que tenga el mismo grado, ejemplo: inserto primero coeficiente 1 y despues grado 2, se muestra como “+1x^2”, y al insertar uno nuevo, debe ser, coeficiente 1 y grado 2 para que cuando se muestre sea “+2x^2” Entonces este ultimo punto me genera problema, ya que no sabria como hacerlo, dejo el codigo que tengo hecho.

Main.cpp

#include <cstdlib> using namespace std; #include "menu.h"  int main() {     int opcion=0;     do {         opcion = menu();         ejecutaOpcionElegida(opcion);     } while (opcion != 3);      return 0; }

Nodo.h

#ifndef NODO #define NODO class Nodo{ public: 	int coeficiente; 	int grado; 	Nodo *next;  }; #endif

Polinomio.h

#ifndef POLINOMIO #define POLINOMIO #include "Nodo.h" #include <iostream> #include <iomanip> #include <string.h>      using namespace std; class Polinomio { public: 	Nodo *cabeza; 	 	void add(int coeficiente, int grado) { 		Nodo *nuevo = new Nodo(); 		nuevo->next = NULL; 		nuevo->coeficiente = coeficiente; 		nuevo->grado = grado; 		if (cabeza==NULL) { 			cabeza = nuevo; 		} else { 			Nodo *actual = cabeza; 			while(actual->next!=NULL) { 				actual = actual->next; 			} 			actual->next = nuevo; 		} 	} 	 	void print() { 		Nodo *actual = cabeza; 		while(actual!= NULL){ 			cout<<"+"<<actual->coeficiente<<"x";  			cout<<fixed<<setprecision(2); 			cout<<"^"<<actual->grado; 			actual = actual->next;  		} 		cout<<endl;  	} 	 	 }; #endif

menu.h

#ifndef MENU_H #define MENU_H #include <iostream> #include <string> using namespace std; #include "Polinomio.h" Polinomio *lista = new Polinomio(); void mostrar();  int menu() {     int opcionElegida = 0;     do {         cout << "1) Agregar termino" << endl;         cout << "2) Mostrar polinomio" << endl;         cout << "3) Salir" << endl;         cout << "Opcion:" << endl;         cin>>opcionElegida;         if (opcionElegida <= 0 || opcionElegida > 3) {             cout << "\tOpcion invalida" << endl;         } else {             break;         }      } while (true);     cin.ignore(1000, '\n');     return opcionElegida; }   void AgregarPolinomio() {   	int a;   	int b;     cout<<"Coeficiente:"<<endl;     cin>>a;     cout<<"Grado:"<<endl;     cin>>b;    lista->add(a,b); }  void mostrar() {     lista->print(); } void ejecutaOpcionElegida(int opcion) {     switch (opcion) {         case 1:             AgregarPolinomio();             break;         case 2:             mostrar();             break;         case 3:             exit(0);             break;         default:              break;       } }   #endif 

Buenos días soy nuevo en esto de Reportlab así que disculpen si la solución a mi problema es demasiado obvia

Si me pudieran ayudar el siguiente código es para crear una tabla en reportLab, pero hasta el momento tengo el problema que cuando la tabla se llena con datos, la misma se corre hacia arriba y no hacia abajo, y se superpone al texto de la cabecera del documento PDF. Gracias saludos:

class ReporteLibroPDF(View):     def tabla(self,pdf,y):        Story = []        styles=getSampleStyleSheet()        styleBH= styles["Normal"]        styleBH.align= 'CENTER'        styleBH.fontSize= 10        Story.append(Paragraph('hoja de ruta', styles["Normal"]))        Story.append(Paragraph('fecha de recepcion', styles["Normal"]))        Story.append(Paragraph('Procedencia', styles["Normal"]))        Story.append(Paragraph('Referencia', styles["Normal"]))        Story.append(Paragraph('Destino', styles["Normal"]))              lista=[]        for var in corresp.objects.all().order_by('-id')  :            p=Paragraph(var.procedencia, styles["Normal"])            r=Paragraph(var.referencia, styles["Normal"])            f=Paragraph(str(var.fecha_recepcion), styles["Normal"])                         lista.append(f, p,r)        lista.reverse()        detalle_orden= Table([Story] + lista, colWidths=[4 * cm, 5 * cm, 10 * cm])        Story.append(detalle_orden)        detalle_orden.setStyle(TableStyle(        [             ('ALIGN',(0,-1),(-1,-1),'CENTER'),                       ('GRID', (0, 0), (-1, -1), 1, colors.black),              ('FONTSIZE', (0, 0), (-1, -1), 10),             ('VALIGN',(0,0),(-1,-1),'MIDDLE'),        ]       ))       detalle_orden.wrapOn(pdf, 800, 600)       detalle_orden.drawOn(pdf, 60,y)       Story.append(detalle_orden)  def get(self, request, *args, **kwargs):     response = HttpResponse(content_type='application/pdf')    response['Content-Disposition'] = 'attachment;filename="ReporteLibro.pdf"'    buffer = BytesIO()    pdf = canvas.Canvas(buffer)    pdf.setPageSize(landscape(letter))     y=400    self.tabla(pdf,y)    pdf.showPage()    pdf.save()    pdf = buffer.getvalue()    buffer.close()    response.write(pdf)    return response   

Admob para unity no funciona en mi proyecto antiguo, pero en uno nuevo sí

Llevo un tiempo intentando solucionar este problema, la cosa es que integro admob en mi proyecto con el unitypackage simplemente dandole doble click e importar, mi problema viene cuando, usando exactamente el mismo script en 2 proyectos distintos, este no funciona en mi juego, pero sí en un proyecto nuevo

Para aclarar, en ambos salen los debugs en la consola correctamente, también estoy usando los anuncios de prueba, por lo que eso no es el problema

Que yo sepa no he hecho nada raro con mis assets de admob, así que no tengo ni idea de que puede ser el problema

Las funciones las llamo por botones de unity

Este es mi primero post aquí, espero haberlo hecho bien, si he incumplido alguna norma pido perdón, pues ahora mismo tengo prisa

private string AppId = "nop"; private string loseScreenBanner = "ca-app-pub-3940256099942544/6300978111"; private string intertitialad = "ca-app-pub-3940256099942544/1033173712"; private BannerView bannerPos; private InterstitialAd AD; private float counter; public Text test; // Start is called before the first frame update void Start() {     //MobileAds.Initialize(AppId); }  public void banner() {     bannerPos = new BannerView(loseScreenBanner, AdSize.Banner, AdPosition.Bottom);     AdRequest request = new AdRequest.Builder().Build();     bannerPos.LoadAd(request);     bannerPos.Show(); }  public void hidebanner() {     bannerPos.Hide(); }  public void mostrarInters() {     if (AD.IsLoaded())     {         AD.Show();     }     else     {         counter++;         test.text = counter.ToString();     } }   public void CargarInters() {     AD = new InterstitialAd(intertitialad);     AdRequest request2 = new AdRequest.Builder().Build();     AD.LoadAd(request2);     //AD.Show();  } 

}