java – El código que tengo para el super.onBackPressed(); hace que las imagenes se me devuelve duplicadas, y tengo que llamarlo dos veces para que funcione

El problema que tengo es que para el onBackPressed quiero que tenga dos funciones:

  1. Cerrar el NavigationView si ese está abierto.
  2. Que los iconos del BottomNavigationView se cambien solos según el fragmento en que esté el usuario.

Ambas cosas funcionan, pero tengo que llamar dos veces a super.onBackPressed();.

Ahora, el problema es que al llamarlo dos veces las imágenes en dos de los fragmentos se me devuelve duplicadas, pero si quito uno de los ““super.onBackPressed();“` la página no se cambia. se vuelve a cargar la misma página en que estés, pero no te vuelve a la página anterior.

Cómo puedo escribir yo el código como para llamar al super.onBackPressed(); solo una vez para que las imágenes no se me devuelva duplicadas?

Así lo tengo ahora, y las imágenes se me devuelve duplicadas

 @Override
    public void onBackPressed() {
        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
            mDrawer.closeDrawer(GravityCompat.START);
        }
        super.onBackPressed();

        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
        if (fragment instanceof HomeFragment) {
            mBottomNavigationView.setSelectedItemId(R.id.nav_home);
        } else if (fragment instanceof AttendingEventFragment) {
            mBottomNavigationView.setSelectedItemId(R.id.nav_save);
        } else if (fragment instanceof NotificationsFragment) {
            mBottomNavigationView.setSelectedItemId(R.id.nav_notifications);
        } else if (fragment instanceof ProfileFragment) {
            mBottomNavigationView.setSelectedItemId(R.id.nav_profile);
        }
        super.onBackPressed();
    }

También lo he intentado a hacer así, pero entonces la página no se cambia…

@Override
    public void onBackPressed() {
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
            mDrawer.closeDrawer(GravityCompat.START);
        } else {
            if (fragment instanceof HomeFragment) {
                mBottomNavigationView.setSelectedItemId(R.id.nav_home);
            } else if (fragment instanceof AttendingEventFragment) {
                mBottomNavigationView.setSelectedItemId(R.id.nav_save);
            } else if (fragment instanceof NotificationsFragment) {
                mBottomNavigationView.setSelectedItemId(R.id.nav_notifications);
            } else if (fragment instanceof ProfileFragment) {
                mBottomNavigationView.setSelectedItemId(R.id.nav_profile);
            }
        }
        super.onBackPressed();
    }

python – Tkinter me abre muchas veces el mismo archivo txt seleccionado

Abre demasiadas veces el mismo archivo

codigo el cual se encargar de abrir el archivo, en tkinter tiene un boton que llama a la funcion ReproducirEscritorio pero cuando lo ejecuto para llamar un archivo .txt u otro archivo se abre demasiadas veces.

pero antes de esta funcion hay otra la cual permite ver un listado completo de todos los archivos y los almacena en una listbox

def ReproducirEscritorio():
    #engine.say("Abriendo Directorio")
    #engine.runAndWait()
    #lstMaterias.delete(0,END)
    home = os.environ('USERPROFILE')
    carpetas = os.listdir(home)
    ruta = home + "\Desktop"
    archivos = os.listdir(ruta)
    try:
        for i in range(len(archivos)):


            #print(str(i) + ')' + str(archivos(i)))
            ejecutar = ruta + '\' + archivos(int(entrada.get()))
            #justo en estas lineas hace que el archivo se ejecute varias veces y no solo una        
            os.startfile(ejecutar)

    except:
        engine.say("Error, esta fuera de las opciones")
        engine.runAndWait()
        MessageBox.showinfo("Aviso de actividad ","Opción fuera de rango") 

javascript – ¿Como mostrar un contenido las veces que un dato (length) tenga registrado?

Estoy desarrollando una pagina web que tiene unas tarjetas con información de un producto.
La informacion la obtengo de Firebase realtime Database.
La función es la siguiente:

function GetInfoProduct(){

  let PathTitleProduct1;

  PathTitleProduct1 = "/Productos/";

  firebase.database().ref(PathTitleProduct1).on('value', (snapshot) => {
    let DatagettedTitleProduct1 = '';
    if(snapshot.val()){
      DatagettedTitleProduct1 = snapshot.val();
      console.log(DatagettedTitleProduct1);
      let TitleProduct1 = document.getElementById('title_product_1');
      TitleProduct1.innerHTML = DatagettedTitleProduct1;
    }
  })

}

La funcion anterior me muestra en consola un resultado de tipo Objeto y me muestra la longitud que tiene este, me muestra que tiene una longitud de 3 valores y dentro de esos 3 valores tiene mas datos.
Lo que quiero saber es como puedo hacer que dependiendo a la longitud del objeto me muestre tantas tarjetas es decir si tengo 3 de logitud que se muestren 3 tarjetas aunque en el html solo tenga registrada una tarjeta y que en cada tarjeta la informacion sea dependiendo a la que se obtiene. el codigo html de una tarjeta es la siguiente.

                    <div class="product_card">

                        <img loading="lazy" src="https://www...exemplo.png" alt="ejemplo">

                        <p id="title_product_1"></p>

                        <p id="subtitle_product_1"></p>

                        <div class="variaciones">

                            <p id="variations_title">Variaciones</p>

                            <p id="v1"></p>

                            <p id="v1"></p>

                            <br>

                        </div>

                        <div class="SizeAndPrice">

                            <p id="SaPtitle">Tamaños y Precios</p>

                            <div class="size">

                                <p id="sizep">Individual</p>
                                <p id="sizep">Pareja</p>
                                <p id="sizep">Familiar</p>

                            </div>

                            <div class="price">

                                <p id="pricep"></p>
                                <p id="pricep"></p>
                                <p id="pricep"></p>

                            </div>                        

                        </div>

                        <div class="btn_buy">

                            <p>Agregar al Carrito</p>                                

                        </div>

                    </div>                    
                    
                </div>

sql server – a veces ingresa datos y otras no. Visual studio CRUD

Tengo que entregar un proyecto con método crud y conexión a base de datos. El problema es que cuando intento unas el método create a veces ingresa los datos y otras no (la mayoría de las veces no), solo me entrega el mensaje flash en los errores , no entiendo que podría ser, la conexion a la base de datos esta bien ya que si puedo usar los metodos read, update y delete. Casi se me olvida la interfaz esta siendo trabajada en WFP.

Metodo create

        {
            try
            {
                Datos.Libro liib = new Datos.Libro()
                {
                    CodLib = this.Codlib,
                    NombreLib = this.Nomlib,
                    CodISBN = this.Isbn,
                    Autor = this.Autor,
                    Fechapublic = this.Fechapublic,
                    Editorial = this.Editorial,
                    Categoria = Categoria.ToString(),
                    Genero = Genero.ToString()

                };
                Conexion.Bli.Libro.Add(liib);
                Conexion.Bli.SaveChanges();
                return true;
            }
            catch
            {
                return false;
            }```


Contar cuantas veces aparece un valor en todo el dataframe – Pandas

Tengo un dataframe con la siguiente estructura,

User   T1   T1_p   T2   T2_p   T3   T3_p
U1     0    2      210  3      412  0
U2     0    3      322  4      496  4
U3     0    2      189  1      315  3

Las columnas con prefijo _p representan el nivel de precisión de los usuarios para cada tiempo. Tengo 5 niveles, de 0 a 4.

Mi pregunta es, ¿como puedo hacer un conteo de todo el dataframe (no por columnas) para saber cuantas veces hay cada nivel? Quiero saberlo de manera global, no por columnas o usuario.

Para el ejemplo quedaría,

  • Nivel 0, 1.
  • Nivel 1, 1.
  • Nivel 2, 2.
  • Nivel 3, 3.
  • Nivel 4, 2.

He hecho lo siguiente,

suma= df.t1_p.value_counts() + df.t2_p.value_counts() + df.t3_p.value_counts() + df.t4_p.value_counts() + df.t5_p.value_counts() + df.p_th.value_counts()

El problema de esto es que si en alguna fila no aparece uno de los niveles, me pone un NaN ya que no lo traduce cómo un 0.

Para solucionar esto se me ha ocurrido añadir 5 filas extra con la función pd.append(), añadiendo así los 5 valores posibles pero… me parece un poco bastante feo.

¿Como podría hacerlo de una manera más limpia este conteo?

¡Muchas gracias!