flutter – Erro ao adicionar quantidade de produto no carrinho

Estou com problemas para adicionar produtos com complementos no carrinho.

Tenho um produto com vários complementos.

Cada complemento tem um preço, e ao adicionar o complemento, eu somo a qtd de produtos x preço do complemento.

Até aí tudo bem, o problema está sendo quando adiciono ou removo uma quantidade no carrinho, ele perde a referência do valor dos itens e buga o total do pedido.

Deixei a linha que acho que está com problema comentado, se puderem me ajudar agradeço, realmente não estou conseguindo chegar a uma lógica para resolver esse problema.

part 'PedidoModel.g.dart';

class PedidoModel = _PedidoModel with _$PedidoModel;

abstract class _PedidoModel with Store{

  @observable
  double total = 0;

  @observable
  int qtd = 1;

  @observable
  double totalItens = 0;

  @observable
  List<ItemComplemento> listaItens = ();

  @observable
  List<Produto> listaProdutos = ();

  @observable
  List<ProdutoCarrinho> listProdutosCarrinho = ();

  @action
  void addProduto(Produto produto) {
    double somaTotal = produto.preco + total;
    somaTotal = num.parse(somaTotal.toStringAsFixed(2));
    total = somaTotal;
  }

  @action
  void addProdutoCarrinho({@required Produto produto, @required context,  @required Empresa empresa, @required CarrinhoModel carrinhoModel}) {


    ProdutoCarrinho produtoCarrinho = ProdutoCarrinho();
    produtoCarrinho.produto = produto;
    produtoCarrinho.listaItensComplemento = listaItens;

    Carrinho carrinho = Carrinho();
    carrinho.idEmpresa = empresa.idEmpresa;
    carrinho.produto = produto;
    carrinho.produtoCarrinho = produtoCarrinho;
    carrinho.adicionarProduto();
    //carrinho.salvar();

    popTela(context);
  }

  @action
  void addItem(ItemComplemento itemComplemento) {
    if(itemComplemento.preco != null){
      totalItens = totalItens + (itemComplemento.preco * qtd);
      total = (total + (itemComplemento.preco * qtd));
    }
    //print("totalItens $totalItens");
    //print("total $total");
    listaItens.add(itemComplemento);
  }

  @action
  void removerItem(ItemComplemento itemComplemento) {
    if(itemComplemento.preco != null){
      totalItens = totalItens - (itemComplemento.preco * qtd);
      total = (total - (itemComplemento.preco * qtd));
    }

    //print("totalItens $totalItens");
    //print("total $total");
    listaItens.remove(itemComplemento);
  }

  @action
  void addQtd(Produto produto, {adicionar = true}) {
    if(adicionar){
      if(qtd < 100){
        qtd++;
      }
    } else {
      if(qtd > 1){
        qtd--;
      }
    }
    //creio que o problema está nessa linha: (aqui o total buga)
    total = (produto.preco * qtd) + (totalItens * qtd);
    print("total $total");
  }

}

html – Como faço para adicionar uma thumb ao meu site?

como eu faço para adicionar uma thumbnail ao meu site em html, tipo, assim que eu digitar sua url no facebook por exemplo ele mostraria uma imagem clicavel, da mesma forma como fica se vocês digitarem o endereço do google (mostra tipo um banner do google).

Espero que possam me ajudar

html – Como adicionar um “spinner” com Javascript enquanto imagens estão a ser carregadas sem Base de dados

Boas colegas! Estou a desenvolver um ‘website’, e nesse ‘website’ tem uma página de galeria na qual as imagens e vídeos estão em vários accordions na, qual se expandem ao clicar… Ao mostrar o cliente ele preferiu que as imagens fossem todas exibidas sem a necessidade de expandir as abas que referencia um determinado contexto. Até ai foi fácil, mas achei a necessidade de acrescentar um spinner (tipo uma informação que as imagens estão a ser carregadas) e bloquear o fundo para que seja possível carregar todas as imagens antes que usuário interaja com a pagina… Não existe comunicação com a base de dados… Como poderei fazer com javascript??

javascript – Adicionar classe no próprio elemento div clicável

Olá! Ainda sou novo em JavaScript e tenho uma dívida de como posso fazer o seguinte:

Tenho 3 divs clicáveis. Quando eu clicar em uma das divs, será mostrado um conteúdo na div abaixo.

Como posso fazer isso em JavaScript?

inserir a descrição da imagem aqui

php – Adicionar código HTML via JS

Olá, gostaria de saber como eu poderia inserir o código HTML para adicionar elementos via Javascript ou PHP. Eu sei que existem a criação de elementos dinâmicos por JS usando createElement(), appendChild()… porém toda vez que é adicionado elementos dessa maneira, toda vez que a página é atualizada ele some e é necessário executar a função novamente. Eu queria uma forma de literalmente inserir o código no HTML quando o usuário apertar um botão é criada uma div permanente, por exemplo. Existe alguma maneira de fazer isso via Javascript ou PHP..

javascript – Como fazer um cardapio e adicionar atributos como nome e quantidade

Vamos lá, então estou editando um sistema de chatbot whatsapp, porem eu só estou adicionando o item queria adicionar a quantidade do item tb, segue o codg `
banco.db(user).itens.push(cardapio.menu(msg));

console.log(banco.db(user).itens)

return (

  `Item(${cardapio.menu(msg).descricao}) adiconado com sucesso`,
  "Digite # para finalizar n"+
  "* para cancelar n",

);

const cardapio = {
1: {
descricao: “Boca Picanha”,
preco: 8.90,
qty:0,
},
2: {
descricao: “Super Picanha”,
preco: 16.90,
qty:0,
},
3: {
descricao: “Ki Boca”,
preco: 14.90,
qty:0,
}
}

`

Eu fiz um jogo em javascript, mas queria saber como adicionar o Pause e start apertando apenas uma tecla

Eu fiz um jogo em javascript, mas queria saber como adicionar o Pause e start apertando apenas uma tecla. Exemplo se apertar a tecla P pausa o jogo, e se apertar a tecla S o jogo inicia da onde parou. alguém pode ajudar ? o codigo é esse 👇👇👇👇


const audio = {
    die: new Audio('audio/die.mp3'),
}


function novoElemento(tagName, className) {
    const elem = document.createElement(tagName)
    elem.className = className
    return elem
}

function Barreira(reversa = false) {
    this.elemento = novoElemento('div', 'barreira')

    const borda = novoElemento('div', 'borda')
    const corpo = novoElemento('div', 'corpo')
    this.elemento.appendChild(reversa ? corpo : borda)
    this.elemento.appendChild(reversa ? borda : corpo)

    this.setAltura = altura => corpo.style.height = `${altura}px`
}

function ParDeBarreiras(altura, abertura, x) {
    this.elemento = novoElemento('div', 'par-de-barreiras')

    this.superior = new Barreira(true)
    this.inferior = new Barreira(false)

    this.elemento.appendChild(this.superior.elemento)
    this.elemento.appendChild(this.inferior.elemento)

    this.sortearAbertura = () => {
        const alturaSuperior = Math.random() * (altura - abertura)
        const alturaInferior = altura - abertura - alturaSuperior
        this.superior.setAltura(alturaSuperior)
        this.inferior.setAltura(alturaInferior)
    }
   
    this.getX = () => parseInt(this.elemento.style.left.split('px')(0))
    this.setX = x => this.elemento.style.left = `${x}px`
    this.getLargura = () => this.elemento.clientWidth

    this.sortearAbertura()
    this.setX(x)
}

function Barreiras(altura, largura, abertura, espaco, notificarPonto) {
    this.pares = (
        new ParDeBarreiras(altura, abertura, largura),
        new ParDeBarreiras(altura, abertura, largura + espaco),
        new ParDeBarreiras(altura, abertura, largura + espaco * 2),
        new ParDeBarreiras(altura, abertura, largura + espaco * 3)

    )

    const deslocamento = 3
    this.animar = () => {
        this.pares.forEach(par => {
            par.setX(par.getX() - deslocamento)

            if (par.getX() < -par.getLargura()) {
                par.setX(par.getX() + espaco * this.pares.length)
                par.sortearAbertura()
            }

            const meio = largura / 2
            const cruzouOMeio = par.getX() + deslocamento >= meio 
                && par.getX() < meio
            if(cruzouOMeio) notificarPonto()    
        })
    }
}


function Passaro(alturaJogo) {
    let voando = false

    this.elemento = novoElemento('img', 'passaro')
    this.elemento.src = "https://pt.stackoverflow.com/imgs/passaro.png"

    this.getY = () => parseInt(this.elemento.style.bottom.split('px')(0))
    this.setY = y => this.elemento.style.bottom = `${y}px`
        
    document.addEventListener("keydown", Passaro => {
    if (Passaro.keyCode === 38)
        voando = true
    })
    
    document.addEventListener("keyup", Passaro => {
        if (Passaro.keyCode === 38)
             voando = false
        })

    this.animar = () => {
        const novoY = this.getY() + (voando ? 7 : -5)
        const alturaMaxima = alturaJogo - this.elemento.clientHeight
        
        if (novoY <= 0) {
            this.setY(0)
        } else if (novoY >= alturaMaxima) {
            this.setY(alturaMaxima)
        } else {
            this.setY(novoY)
        }
    }

    this.setY(alturaJogo / 2)
}

function Progresso() {
    this.elemento = novoElemento('span', 'progresso')
    this.atualizarPontos = pontos => {
        this.elemento.innerHTML = pontos
    }

    this.atualizarPontos(0)
}

function estaoSobrepostos(elementoA, elementoB) {
    const a = elementoA.getBoundingClientRect()
    const b = elementoB.getBoundingClientRect()

    const horizontal = a.left + a.width >= b.left
        && b.left + b.width >= a.left
    const vertical = a.top + a.height >= b.top
        && b.top + b.height >= a.top
    return horizontal && vertical       
}

function colidiu(passaro, barreiras) {
    let colidiu = false
    barreiras.pares.forEach(parDeBarreiras => {
        if (!colidiu) {
            const superior = parDeBarreiras.superior.elemento
            const inferior = parDeBarreiras.inferior.elemento
            colidiu = estaoSobrepostos(passaro.elemento, superior)
                || estaoSobrepostos(passaro.elemento, inferior)
                
        }
    })
    return colidiu &&  audio.die.play()



}


class FlappyBird {
    constructor() {
    let pontos = 0

    const areaDoJogo = document.querySelector('(wm-flappy)')
    const altura = areaDoJogo.clientHeight
    const largura = areaDoJogo.clientWidth

    const progresso = new Progresso()
    const barreiras = new Barreiras(altura, largura, 200, 400,
        () => progresso.atualizarPontos(++pontos))
    const passaro = new Passaro(altura)
    
    areaDoJogo.appendChild(progresso.elemento)
    areaDoJogo.appendChild(passaro.elemento)
    barreiras.pares.forEach(par => areaDoJogo.appendChild(par.elemento))

    this.start = () => {
        const temporizador = setInterval(() => {
            barreiras.animar()
            passaro.animar()
           
            if (colidiu(passaro, barreiras)) {
                clearInterval(temporizador)
                 
               

            }
        },20)

         }
    
    }
}

new FlappyBird().start()

java – Como adicionar um dado em um laço filho??? firebase

(!(inserir a descrição da imagem aqui)(1))(1)

(1): https://i.stack.imgur.com/moyvL.png`import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;

public class bloco extends AppCompatActivity {

private EditText editText;
private Button botCriar;
private ListView listView;
private FirebaseDatabase database;
private DatabaseReference myRef;
private Dados dados;
public String UserID;



private ArrayList<String> notas = new ArrayList<String>();
ArrayAdapter<String> adapter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bloco);


    database = FirebaseDatabase.getInstance();
    myRef = database.getReference();
    editText = (EditText) findViewById(R.id.name);
    botCriar =  findViewById(R.id.botCriar);
    listView = (ListView) findViewById(R.id.listView);
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, notas);
    listView.setAdapter(adapter);

    UserID = myRef.push().getKey();

    botCriar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String textoNota = editText.getText().toString();
            if (textoNota.length()>0){
                editText.setText("");
                editText.findFocus();
                notas.add(textoNota);
                adapter.notifyDataSetChanged();
            }

            //dados.setTexto(textoNota);
            dados.setNotas(notas);

            myRef.child("task").child("dados").setValue(dados);
        }
    });
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            AlertDialog.Builder adb = new AlertDialog.Builder(bloco.this);
            adb.setTitle("Nota");
            adb.setMessage("Você deseja apagar essa nota?");
            final int positionToRemove = position;
            adb.setNegativeButton("Não", null);
            adb.setPositiveButton("Sim", new AlertDialog.OnClickListener() {
                public void onClick (DialogInterface dialog, int which) {
                    notas.remove(positionToRemove);
                    adapter.notifyDataSetChanged();
                }
            });
            adb.show();
        }
    });
}

}`

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class criandoConta extends AppCompatActivity {

private EditText loginNovoUsuarioEditText;
private EditText senhaNovoUsuarioEditText;
private FirebaseAuth mAuth;
private FirebaseDatabase database;
private DatabaseReference myRef;
private Button criarUsuario;
private User user;
//private String UserID;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_criando_conta);

    loginNovoUsuarioEditText = findViewById(R.id.loginNovoUsuarioEditText);
    senhaNovoUsuarioEditText = findViewById(R.id.senhaNovoUsuarioEditText);
    mAuth = FirebaseAuth.getInstance();
    database = FirebaseDatabase.getInstance();
    myRef = database.getReference();
    criarUsuario = findViewById(R.id.criarUsuario);
    criarUsuario.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            criarUsuario(loginNovoUsuarioEditText.getText().toString(), senhaNovoUsuarioEditText.getText().toString());

        }
    });
    //UserID = myRef.push().getKey();
}

public void criarUsuario(String login, String senha){


  String key = myRef.child("task").push().getKey();

    user = new User();

    user.setLogin(login);
    user.setSenha(senha);

    myRef.child("task").child(key).setValue(user);

    Toast.makeText(this , "Contra criada com sucesso!", Toast.LENGTH_SHORT).show();

    mAuth.createUserWithEmailAndPassword(login, senha).addOnSuccessListener((result) -> {
        startActivity(new Intent(this, MainActivity.class));
        Toast.makeText(this, result.getUser().toString(), Toast.LENGTH_SHORT).show();
    })
            .addOnFailureListener(error -> error.printStackTrace());

}
import java.util.ArrayList;

public class User {

public String login;
public String senha;



public User(String login, String senha) {
    this.login = login;
    this.senha = senha;
}

public User() {

}


public String getLogin() {
    return login;
}

public String getSenha() {
    return senha;
}

public void setLogin(String login) {
    this.login = login;
}

public void setSenha(String senha) {
    this.senha = senha;
}

}

import java.util.ArrayList;

public class Dados {

public ArrayList<String> notas;
public String dataSelect;


public Dados(ArrayList<String> notas, String dataSelect) {
    this.notas = notas;
    this.dataSelect = dataSelect;
}

public Dados() {
}

public ArrayList<String> getNotas() {
    return notas;
}

public String getDataSelect() {
    return dataSelect;
}

public void setNotas(ArrayList<String> notas) {
    this.notas = notas;
}

public void setDataSelect(String dataSelect) {
    this.dataSelect = dataSelect;
}

}

}Não consigo implentar os dados junto a esse push

Adicionar caractere usando tabela ascii em uma string em C++

Galera Bom dia(tarde, noite)

Tenho quer criar um código em c++ para criptografia e queria saber se tem como trocar uma letra de uma string usando tabela ascii, da maneira a seguir (qual seria a forma correta de fazer, utilizando string?):

int main() {

string nome;

nome = “joao”;

cout <<nome << end;

nome(1)=49;

cout <<nome << end;

return 0;
}

c – Erro “cannot jump from switch statement to this case label” ao adicionar outro case ao meu switch

Estou tentando adicionar outro case ao meu switch, porem apresenta esse erro acima. já verifiquei e não falta nenhum break nos cases anteriores. Porem, se eu excluir somente o case anterior ele não mais apresenta esse erro. Abaixo segue o código do case anterior.

case 5:
      printf("nDigite o valor da Largura e Comprimento da sala de aula e a distancia minima em metros recomendada respectivameten");
    scanf("%f %f %f", &Largura, &Altura, &Distancia_Minima);
    Semanas_Para_Fechar_O_Ciclo = ceil ((float) Cont_Quantidade_Aluno(Aln) / ((Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1)));
    printf("nnA turma com %d aluno(s) do nao grupo de risco foi dividida em %d grupo(s) para que haja o distanciamento adequado na sala de aula levando em consideracao a area da sala de aula e a distancia minima entre duas carteiras, sera preciso uma quantidade de %d semana(s) para que todos os alunos tenham a mesma quantidade de aulann",Cont_Quantidade_Aluno(Aln), Semanas_Para_Fechar_O_Ciclo, Semanas_Para_Fechar_O_Ciclo);
    printf("nnO grupo de alunos do grupo de risco contem uma quantidade de %d aluno(s) e eles deverão assistir as aulas de forma remotann",Cont_Quantidade_Aluno(Alunos_Grupo_De_Risco));
    //printf("nnnn");
    //printf("nQuantidade de alunos cadastrados = %dn", Cont_Quantidade_Aluno(Aln));
    //printf("nQuantidade maxima de alunos menos o professor = %dn", Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1);
    //printf("nProporcao de alunos na turma = %dn", Semanas_Para_Fechar_O_Ciclo);
    char Alocacao(Semanas_Para_Fechar_O_Ciclo)(Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1)(41);
    Aloca_Turma(Aln, (Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1), Semanas_Para_Fechar_O_Ciclo, Alocacao);
    //int L = Semanas_Para_Fechar_O_Ciclo;
    //int C = (Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1);
    //printf("nnLinhas = %d Colunas = %d", L, C);
    //for(i = 0; i < Semanas_Para_Fechar_O_Ciclo; i++){
    //  printf("nnTurma de numero %dnn", (i+1));
    //  for (j = 0; j < (Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1); j++){
    //    printf("nnPosicao (%d)(%d)Alunos = %s nn",i,j, Alocacao(i)(j));
    //  }
    //}
    Imprime_Turma_Alocada(Semanas_Para_Fechar_O_Ciclo, (Quantidade_Alunos_Sala(Altura, Largura, Distancia_Minima) - 1), Alocacao, Dias_Letivo, Horario_Escolar);
    break;