Sistema de cobro en Android Studio 3da parte

📱 Ejercicio.- Sistema de cobro en Android Studio 3da parte [18]

En este video vamos continuar con el sistema de cobro en Android Studio 3da parte anterior y vamos a hacer la el área de pago y redondeo de cambio.

  • Agregaremos un EditText para recibir el pago y un ViewText para mostrar el cambio a entregar.
  • Crearemos la función pagar que estará vinculada al botón pagar que ara lo siguiente:
    • Calcular el cambio y los centavos
    • Si hay centavos a devolver mostraremos un alertDialog que dirá:
    • Si desea redondear su cambio se restaran los centavos y se agradecerá por su donativo.
    • Si no desea redondear su cambio se entregará el cambio completo.

Sintaxis de AlertDialog
AlertDialog.Builder
AlertDialog.setTitle(“String”)
AlertDialog.setMessage(“String”)
AlertDialog.setPositiveButton(“Si”){
dialogInterface: DialogInterface, i: Int –
//Codigo
}
AlertDialog.setNegativeButton(“No”){
dialogInterface: DialogInterface, i: Int –
//Codigo
}
val alert: AlertDialog = dialogoAlerta.create()
alert.setCanceledOnTouchOutside(false)
alert.show()

Sistema de cobro en Android Studio 3da parte

Codigo: https://github.com/programadornovato/Mi-Primer-Proyecto-Android-Studio/commit/6438e1bfba4df4b08f26585259830136fabd6795

package com.programadornovato.miprimerproyecto

import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.*
import androidx.appcompat.app.AlertDialog
import java.math.BigDecimal
import kotlin.math.PI
import kotlin.math.round

class MainActivity : AppCompatActivity() {
    private var txtPrecio:EditText?=null
    private var tvLista:TextView?=null
    private var tvTotal:TextView?=null

    private var txtPago:EditText?=null
    private var tvCambio:TextView?=null

    private var contador=0
    private var listaProductos=ArrayList<Double>()
    private var total=0.0
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        txtPrecio=findViewById(R.id.txtPrecio)
        tvLista=findViewById(R.id.tvLista)
        tvTotal=findViewById(R.id.tvTotal)
        txtPago=findViewById(R.id.txtPago)
        tvCambio=findViewById(R.id.tvCambio)
    }
    fun agregar(view: View){
        var precio=txtPrecio?.text.toString().toDouble()
        listaProductos.add(precio)
        tvLista?.text=tvLista?.text.toString()+"\n"+"Producto ${contador+1}=%.2f".format(precio)
        contador++
        txtPrecio?.setText("")
        total=0.0
        listaProductos.forEach{
            total=total+it
        }
        tvTotal?.text="Total=%.2f".format(total)
    }
    fun pagar(view: View){
        var pago=txtPago?.text.toString().toDouble()
        var cambio=pago-total
        var centavos=cambio-cambio.toInt()
        if(centavos>0.0){
            val dialogo:AlertDialog.Builder=AlertDialog.Builder(this)
            dialogo.setTitle("¿Deseas donar tus centavos?")
            dialogo.setMessage("Haz click para donar %.2f".format(centavos)+" centavos")
            dialogo.setPositiveButton("Si"){ dialogInterface: DialogInterface, i: Int ->
                Toast.makeText(this,"Gracias por donar %.2f".format(centavos)+" centavos",Toast.LENGTH_LONG).show()
                tvCambio?.text="Su cambio es de %.2f".format(cambio-centavos)
            }
            dialogo.setNegativeButton("No"){ dialogInterface: DialogInterface, i: Int ->
                Toast.makeText(this,"Gracias por nada por favor no regreses",Toast.LENGTH_LONG).show()
                tvCambio?.text="Su cambio es de %.2f".format(cambio)
            }
            val alerta:AlertDialog=dialogo.create()
            alerta.setCanceledOnTouchOutside(false)
            alerta.show()
        }else{
            tvCambio?.text="Su cambio es de %.2f".format(cambio)
        }
    }

}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="322dp"
        android:layout_height="30dp"
        android:layout_marginTop="16dp"
        android:text="Bienvenido humano a la tienda del PN"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.632"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/txtPrecio"
        android:layout_width="363dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="Humano coloca el precio"
        android:inputType="numberDecimal"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <Button
        android:id="@+id/btnAgregar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:onClick="agregar"
        android:text="Agregar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txtPrecio" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:text="Lista de productos"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnAgregar" />

    <TextView
        android:id="@+id/tvLista"
        android:layout_width="336dp"
        android:layout_height="110dp"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <Button
        android:id="@+id/btnPagar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:onClick="pagar"
        android:text="Pagar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txtPago" />

    <TextView
        android:id="@+id/tvTotal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:text="total"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvLista" />

    <EditText
        android:id="@+id/txtPago"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="Pago"
        android:inputType="numberDecimal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvTotal" />

    <TextView
        android:id="@+id/tvCambio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:text="cambio"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnPagar" />

</androidx.constraintlayout.widget.ConstraintLayout>

🎦 Lista de reproducción de este curso: https://www.youtube.com/watch?v=3ZUlE_tvfaM&list=PLCTD_CpMeEKRL2-HaZThebGcyyR3_RshO&ab_channel=programadornovato
🎦 Curso de Android Studio: https://www.youtube.com/watch?v=AHyTqIB_8Rs&list=PLCTD_CpMeEKTT9pb9J-89j1SPtqHzU7sF&ab_channel=programadornovato
🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF
🎦 [Curso] Kotlin de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSjzbsW_zmVNz23GyOVsdbS
🎦 [Curso] Java Netbeans Completo☕: https://www.youtube.com/playlist?list=PLCTD_CpMeEKTT-qEHGqZH3fkBgXH4GOTF

🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato

Anterior tutorial Siguiente tutorial

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)