Créer une appli android

Résolu
Adeline_ccm -  
 Adeline_ccm -
Bonjour,

J'ai créé le Design de l'appli mais je sèche totalement pour paramétrer les calculs que je veux faire.
Je voudrais que lorsque je clique sur le bouton "CALCULER" il y ai dans les cases "Total" le calcul suivant :
- si "%" coché alors : (Cases "colonne %" x Cases "Quantité total en gr.")/100
- si "gr." coché alors : (Cases "colonne gr." x 1)

J'aimerais aussi créer un message qui s'affiche lorsque :
- somme des "cases Total" = à case "Quantité totale en gr." alors "OK"
- sinon somme "cases Total" - "case Quantité" totale en gr."

Ci-dessous ce que j'ai fait :


<?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"
    android:background="#D0E91E63"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView25"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="150dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextNumber"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/I2"
        app:layout_constraintTop_toBottomOf="@+id/textView24" />

    <TextView
        android:id="@+id/textView24"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView25"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/H2"
        app:layout_constraintTop_toBottomOf="@+id/textView23" />

    <TextView
        android:id="@+id/textView23"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView24"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/G2"
        app:layout_constraintTop_toBottomOf="@+id/textView22" />

    <TextView
        android:id="@+id/textView22"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView23"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/F2"
        app:layout_constraintTop_toBottomOf="@+id/textView21" />

    <TextView
        android:id="@+id/textView20"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView21"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/D2"
        app:layout_constraintTop_toBottomOf="@+id/C3" />

    <TextView
        android:id="@+id/textView21"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView22"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/E2"
        app:layout_constraintTop_toBottomOf="@+id/textView20" />

    <TextView
        android:id="@+id/C3"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/textView20"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/C2"
        app:layout_constraintTop_toBottomOf="@+id/B3" />

    <TextView
        android:id="@+id/B3"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/C3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/B2"
        app:layout_constraintTop_toBottomOf="@+id/A3" />

    <EditText
        android:id="@+id/editTextTextPersonName18"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="150dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextNumber"
        app:layout_constraintEnd_toStartOf="@+id/editText8"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName17" />

    <EditText
        android:id="@+id/editTextTextPersonName11"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName12"
        app:layout_constraintEnd_toStartOf="@+id/editText1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName13" />

    <EditText
        android:id="@+id/editTextTextPersonName12"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName14"
        app:layout_constraintEnd_toStartOf="@+id/editText2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName11" />

    <EditText
        android:id="@+id/editTextTextPersonName13"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName11"
        app:layout_constraintEnd_toStartOf="@+id/editText"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView18" />

    <EditText
        android:id="@+id/editTextTextPersonName14"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName16"
        app:layout_constraintEnd_toStartOf="@+id/editText3"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName12" />

    <EditText
        android:id="@+id/editTextTextPersonName15"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName17"
        app:layout_constraintEnd_toStartOf="@+id/editText6"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName10" />

    <EditText
        android:id="@+id/editTextTextPersonName17"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName18"
        app:layout_constraintEnd_toStartOf="@+id/editText7"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName15" />

    <EditText
        android:id="@+id/editTextTextPersonName16"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName10"
        app:layout_constraintEnd_toStartOf="@+id/editText4"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName14" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText1"
        app:layout_constraintEnd_toStartOf="@+id/A1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName13"
        app:layout_constraintTop_toBottomOf="@+id/textView15"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText2"
        app:layout_constraintEnd_toStartOf="@+id/B1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName11"
        app:layout_constraintTop_toBottomOf="@+id/editText"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText3"
        app:layout_constraintEnd_toStartOf="@+id/C1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName12"
        app:layout_constraintTop_toBottomOf="@+id/editText1"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText4"
        app:layout_constraintEnd_toStartOf="@+id/D1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName14"
        app:layout_constraintTop_toBottomOf="@+id/editText2"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText5"
        app:layout_constraintEnd_toStartOf="@+id/E1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName16"
        app:layout_constraintTop_toBottomOf="@+id/editText3"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText5"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText6"
        app:layout_constraintEnd_toStartOf="@+id/F1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName10"
        app:layout_constraintTop_toBottomOf="@+id/editText4" />

    <EditText
        android:id="@+id/editText6"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText7"
        app:layout_constraintEnd_toStartOf="@+id/G1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName15"
        app:layout_constraintTop_toBottomOf="@+id/editText5"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText7"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editText8"
        app:layout_constraintEnd_toStartOf="@+id/H1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName17"
        app:layout_constraintTop_toBottomOf="@+id/editText6"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/editText8"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:layout_marginBottom="150dp"
        android:background="@color/white"
        android:ems="10"
        android:inputType="text"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextNumber"
        app:layout_constraintEnd_toStartOf="@+id/I1"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editTextTextPersonName18"
        app:layout_constraintTop_toBottomOf="@+id/editText7"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/F1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:autofillHints=""
        android:background="#FFFFFF"
        android:ems="10"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/G1"
        app:layout_constraintEnd_toStartOf="@+id/F2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText5"
        app:layout_constraintTop_toBottomOf="@+id/E1" />

    <EditText
        android:id="@+id/B1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/C1"
        app:layout_constraintEnd_toStartOf="@+id/B2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText1"
        app:layout_constraintTop_toBottomOf="@+id/A1" />

    <EditText
        android:id="@+id/H1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/I1"
        app:layout_constraintEnd_toStartOf="@+id/H2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText7"
        app:layout_constraintTop_toBottomOf="@+id/G1" />

    <EditText
        android:id="@+id/E1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/F1"
        app:layout_constraintEnd_toStartOf="@+id/E2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText4"
        app:layout_constraintTop_toBottomOf="@+id/D1" />

    <EditText
        android:id="@+id/G1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/H1"
        app:layout_constraintEnd_toStartOf="@+id/G2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText6"
        app:layout_constraintTop_toBottomOf="@+id/F1" />

    <EditText
        android:id="@+id/I2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="150dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAccessibility="no"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/editTextNumber"
        app:layout_constraintEnd_toStartOf="@+id/textView25"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/I1"
        app:layout_constraintTop_toBottomOf="@+id/H2" />

    <EditText
        android:id="@+id/D2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAccessibility="no"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/E2"
        app:layout_constraintEnd_toStartOf="@+id/textView20"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/D1"
        app:layout_constraintTop_toBottomOf="@+id/C2" />

    <EditText
        android:id="@+id/C2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/D2"
        app:layout_constraintEnd_toStartOf="@+id/C3"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/C1"
        app:layout_constraintTop_toBottomOf="@+id/B2" />

    <EditText
        android:id="@+id/G2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAccessibility="no"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/H2"
        app:layout_constraintEnd_toStartOf="@+id/textView23"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/G1"
        app:layout_constraintTop_toBottomOf="@+id/F2" />

    <EditText
        android:id="@+id/F2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/G2"
        app:layout_constraintEnd_toStartOf="@+id/textView22"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/F1"
        app:layout_constraintTop_toBottomOf="@+id/E2" />

    <EditText
        android:id="@+id/A2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/B2"
        app:layout_constraintEnd_toStartOf="@+id/A3"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/A1"
        app:layout_constraintTop_toBottomOf="@+id/textView12" />

    <EditText
        android:id="@+id/H2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/I2"
        app:layout_constraintEnd_toStartOf="@+id/textView24"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/H1"
        app:layout_constraintTop_toBottomOf="@+id/G2"
        android:importantForAutofill="no" />

    <EditText
        android:id="@+id/B2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/C2"
        app:layout_constraintEnd_toStartOf="@+id/B3"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/B1"
        app:layout_constraintTop_toBottomOf="@+id/A2" />

    <EditText
        android:id="@+id/E2"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/F2"
        app:layout_constraintEnd_toStartOf="@+id/textView21"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/E1"
        app:layout_constraintTop_toBottomOf="@+id/D2" />

    <EditText
        android:id="@+id/A1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/B1"
        app:layout_constraintEnd_toStartOf="@+id/A2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText"
        app:layout_constraintTop_toBottomOf="@+id/textView15" />

    <TextView
        android:id="@+id/textView12"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginTop="150dp"
        android:layout_marginBottom="1dp"
        android:text="@string/total"
        android:textAlignment="center"
        android:textColor="#FFFFFF"
        android:textSize="14sp"
        android:textStyle="italic"
        app:layout_constraintBottom_toTopOf="@+id/A3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/radioGroup"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName" />

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="107dp"
        android:layout_height="22dp"
        android:layout_marginBottom="5dp"
        android:orientation="horizontal"
        app:layout_constraintBottom_toTopOf="@+id/A2"
        app:layout_constraintEnd_toStartOf="@+id/textView12"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textView15">

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="53dp"
            android:layout_height="22dp"
            android:text="@string/percentage"
            android:textAlignment="center"
            android:textColor="@color/white" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:text="@string/gram"
            android:textAlignment="center"
            android:textColor="@color/white" />
    </RadioGroup>

    <TextView
        android:id="@+id/textView18"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:text="@string/phase"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textStyle="italic"
        app:layout_constraintBaseline_toBaselineOf="@+id/textView15"
        app:layout_constraintEnd_toStartOf="@+id/textView15"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/textView15"
        android:layout_width="168dp"
        android:layout_height="22dp"
        android:text="@string/ingredients"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textColorHint="@color/white"
        android:textStyle="italic"
        app:layout_constraintBaseline_toBaselineOf="@+id/textView12"
        app:layout_constraintEnd_toStartOf="@+id/radioGroup"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textView18" />

    <EditText
        android:id="@+id/I1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="150dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/editTextNumber"
        app:layout_constraintEnd_toStartOf="@+id/I2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText8"
        app:layout_constraintTop_toBottomOf="@+id/H1" />

    <EditText
        android:id="@+id/C1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/D1"
        app:layout_constraintEnd_toStartOf="@+id/C2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText2"
        app:layout_constraintTop_toBottomOf="@+id/B1" />

    <EditText
        android:id="@+id/D1"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        app:layout_constraintBottom_toTopOf="@+id/E1"
        app:layout_constraintEnd_toStartOf="@+id/D2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/editText3"
        app:layout_constraintTop_toBottomOf="@+id/C1" />

    <Button
        android:id="@+id/button"
        android:layout_width="113dp"
        android:layout_height="34dp"
        android:layout_marginEnd="16dp"
        android:text="@string/calculate"
        android:textSize="12sp"
        android:textStyle="italic"
        app:layout_constraintBaseline_toBaselineOf="@+id/editTextNumber"
        app:layout_constraintEnd_toEndOf="parent" />

    <EditText
        android:id="@+id/editTextNumber"
        android:layout_width="72dp"
        android:layout_height="24dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:background="#FFFFFF"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="number"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName19"
        app:layout_constraintEnd_toStartOf="@+id/button" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.6" />

    <EditText
        android:id="@+id/editTextTextPersonName10"
        android:layout_width="40dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="@color/white"
        android:ems="10"
        android:importantForAutofill="no"
        android:inputType="text"
        android:textAlignment="center"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName15"
        app:layout_constraintEnd_toStartOf="@+id/editText5"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName16" />

    <EditText
        android:id="@+id/editTextTextPersonName19"
        android:layout_width="356dp"
        android:layout_height="89dp"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        android:background="@color/white"
        android:ems="10"
        android:hint="@string/comments"
        android:inputType="textPersonName"
        android:textAlignment="textStart"
        android:textSize="12sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:importantForAutofill="no" />

    <TextView
        android:id="@+id/total"
        android:layout_width="159dp"
        android:layout_height="21dp"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:text="@string/total_Quantity"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textStyle="italic"
        app:layout_constraintBaseline_toBaselineOf="@+id/editTextNumber"
        app:layout_constraintEnd_toStartOf="@+id/editTextNumber"
        app:layout_constraintStart_toStartOf="parent" />

    <EditText
        android:id="@+id/editTextTextPersonName"
        android:layout_width="361dp"
        android:layout_height="21dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:background="@color/white"
        android:ems="10"
        android:hint="@string/title"
        android:inputType="textPersonName"
        android:textAlignment="center"
        android:textColor="@color/white"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:importantForAutofill="no" />

    <TextView
        android:id="@+id/A3"
        android:layout_width="50dp"
        android:layout_height="22dp"
        android:layout_marginBottom="1dp"
        android:background="#EAABC1"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="14sp"
        app:layout_constraintBottom_toTopOf="@+id/B3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/A2"
        app:layout_constraintTop_toBottomOf="@+id/textView12" />

</androidx.constraintlayout.widget.ConstraintLayout>


Configuration: Windows / Chrome 87.0.4280.66

16 réponses

Résumé de la discussion

Paramétrer les calculs et l’affichage dans une appli Android soulève une problématique centrale : déclencher des calculs conditionnels selon un mode « pourcentage » ou « grammes » et afficher un message basé sur la somme totale. Des réponses évoquent essentiellement l’accessibilité et la lisibilité de l’interface, la nécessité d’utiliser une boucle ou d’aborder l’architecture Kotlin, et la difficulté pour un débutant. En cas de progression, plusieurs conseils portent sur Android Studio, l’apprentissage des bases de la programmation et la séparation graphique/calcul, avec des références pédagogiques et des exemples de syntaxe Kotlin. Autre point utile, des échanges soulignent l’importance d’éviter les solutions lourdes pour un débutant et d’envisager des tests sur plusieurs appareils afin d’améliorer l’accessibilité et la robustesse.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention   3 930
     
    Hello,

    Qu'est-ce qui te bloques exactement ? Tu as l'algorithme que tu nous as écrit, maintenant, il faut le transcrire en Kotlin
    0
    1. Adeline_ccm
       
      La transcription justement. J'ai regardé des exemples mais j'ai rien trouvé de ce que je veux faire... je sais pas comment tourner le truc en kotlin.
      0
      1. BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention   3 930 > Adeline_ccm
         
        Je cite

        Je voudrais que lorsque je clique sur le bouton "CALCULER" il y ai dans les cases "Total" le calcul suivant :
        - si "%" coché alors : (Cases "colonne %" x Cases "Quantité total en gr.")/100
        - si "gr." coché alors : (Cases "colonne gr." x 1)


        ça donnerait un truc comme ça, non ?

        var total = 0
        if (radioButton1.isChecked) { // si la checkbox "%" est cochée
        // ici ton calcul
        val calcul = ...
        total += calcul
        }
        if (radioButton2.isChecked) { // si la checkbox "gr." est cochée
        // ici ton calcul
        val calcul = ...
        total += calcul
        }

        Ceci, à mettre dans le
        onClickListener()
        du bouton.
        Désolé, je ne vais pas être plus précis pour plusieurs raisons :
        - je te conseille de renommer tes composants graphiques, tu vas te perdre avec les edit1, edit 2, edit 12, etc.
        - je t'ai donné le squelette, le reste tu pourras le trouver par toi-même
        0
      2. Adeline_ccm > BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention  
         
        J'ai renommé les composants graphiques mais j'arrive pas à mettre m'on idée en langage Kotlin. J'y arrive en langage Excel mais celui de Kotlin reste un mystère pour moi. Il dois y avoir des info essentielles qui m'échappent :-/
        0
      3. Adeline_ccm > BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention  
         
        C'est un truc comme ça qu'il faut que je fasse ?
        0
  2. Adeline_ccm
     
    Ah ok ! Déjà ça m'aide beaucoup.
    Merci.
    0
  3. dachiasse Messages postés 1932 Statut Membre 153
     
    Salut,

    C'est simplifier au maximum :
    un algo c'est des données stockés dans des variables. stock unique avec une variable basique typée. Par exemple, je veux stocker un age, c'est un nombre entier, la personne a 50 ans. Exemple en pseudo-code¹ :
    Variable age de type ENTIER
    age = 50

    C'est bien, mais, si on a 50 personnes, elles n'ont pas forcément toutes 50 ans. On peut donc avoir recours aux variables à stock multiple comme une liste, un tuple, un dictionnaire, etc. en langage Python 3. D'après https://kotlinlang.org/docs/reference/collections-overview.html il y en aurait 3 chez Kotlin : List, Set et Map. On peut pousser plus loin en faisant de la programmation orientée objet (POO) où l'on écrira une classe Humain par exemple, et on instanciera un objet par personne. Imagine tu veux instancier 2 objets Alice et Bob qui ont respectivement 40 et 50 ans :
    CLASSE Humain:
    MÉTHODE Construire(ceci, nom, age): // ceci²
    ceci.nom = nom
    ceci.age = age
    alice = Construire("Alice", 40)
    bob = Construire("Bob", 50)
    écrire("Alice a {alice.age} ans.") // affiche à l'écran : Alice a 40 ans.


    Bon, ce n'était que la partie ultra simplifiée du stockage de données
    ensuite, viennent les conditions, les boucles, et les fonctions, et d'autres instructions ou opérations.
    Quand dans ton algo, ta phrase commence par : "Si ..." ce sera une condition. Le résultat d'une condition est un booléen, c'est à dire une valeur vraie ou fausse. Il n'y a pas d'entre-deux en informatique. En informatique, ce qui est 99.99999999999... % vrai est... faux.
    Exemple :
    age = 30
    SI age >= 18 ALORS :
    "personne majeure"
    SINON SI 0 <= age < 18 :
    "personne mineure"
    SINON :
    "personne inexistante"


    L'ordi va effectuer ces opération :
    il connaît la valeur de
    age
    qui est 30.
    1) il vérifie 30 >= 18 : c'est vrai. age >= 18 se transforme en VRAI. Dans ce cas, c'est l'instruction correspondante qui est effectuée, il affiche donc "personne majeure".
    Change 30 par 15. Il vérifie 15 >= 18 : FAUX. Il passe à la condition suivante et la vérifie : 0 <= 15 < 18 : VRAI. L'instruction correspondante est effectuée : "personne mineure". Remplace 15 par -500. -500 >= 18 ? FAUX ; 0 <= -500 < 18 ? FAUX. SINON n'a pas de condition car il implique tout le reste, et -500 entre dans cette catégorie : "personne inexistante". Dans mon exemple, pour un être-humain, mettre un âge de 95412364 ans est absurde. Pour l'ordinateur, il ne fera que vérifier : 95412364 >= 18 : VRAI : "personne majeure"

    Une boucle c'est relativement simple à comprendre, mais, peut être dangereux à l'usage en cas de fabrication d'une boucle infinie. On sort d'une boucle quand la condition est fausse.
    Exemple :
    nombre = 0
    TANT QUE nombre < 10:
    écrire({nombre})
    nombre = nombre + 1 // absurde en maths, logique en programmation

    on verra : 0 puis 1 ... 9 et la boucle s'arrête. 9 deviendra 10. 10 < 10 : FAUX, on sort de la boucle. Commente ou retire la ligne nombre = nombre + 1, tu verras : 0, 0, 0, ..., 0... sans interruption, c'est une boucle infinie.

    Tu auras forcément des portions de code dont le squelette se répète, faire une fonction de ce squelette est très utile pour simplifier la lecture et la manipulation du code ultérieurement. Désolé pour l'exemple un poil compliqué. Imagine tu veux que l'ordinateur t'affiche la dernière ligne de 50 fichiers, bêtement nommé fichier_1 à fichier_50. À première vue on ferait quelque chose comme :
    Ouvrir("fichier_1", mode LECTURE)
    placer curseur en début de la dernière ligne
    écrire(début=curseur, fin=fin du fichier)
    Fermer("fichier_1")

    Ceci 50 fois, donc 200 lignes. On fait une fonction. Dans les 4 lignes, seul le premier paramètre d'OUVRIR varie, pareil pour FERMER. Dans la fonction, il n'y aura donc qu'un paramètre d'entrée, c'est le fichier, nommons ce paramètre fichier. Et nommons la fonction Afficher_derniere_ligne :
    FONCTION Affiche_derniere_ligne(fichier):
    Ouvrir(fichier, mode LECTURE)
    placer curseur en début de la dernière ligne
    écrire(début=curseur, fin=fin du fichier)
    fermer(fichier)
    Afficher_derniere_ligne("fichier_1)
    [...]
    Afficher_derniere_ligne("fichier_50)

    5 lignes + 50 x 1 lignes = 55 lignes.
    Tu as 10 fichiers supplémentaires ? Dans le premier cas, tu devras écrire 10 x 4 lignes. Dans le second, 10 x 1 ligne.
    Tu dois maintenir le code source, modifier une opération car tu ne veux plus la dernière ligne mais les 5 dernières lignes. Dans le premier cas, tu vas devoir faire 50 manipulations. Dans le second cas, tu peux faire un rechercher remplacer :
    Afficher_derniere_ligne
    en
    Afficher_5_dernieres_lignes
    et tu remplaces une seule fois :
    placer curseur en début de la dernière ligne
    en
    placer curseur en début de la cinquième ligne en partant de la fin
    .

    ¹ Le pseudo-code est un code inutilisable mais lisible, on utilise des conventions connues ou alors on les précise en amont pour faciliter la lecture aux personnes extérieures si nécessaire.

    ² ceci est un terme clé ou arbitraire qui signifie l'objet lui-même. Tu auras remarqué que la méthode Construire a 3 paramètres : ceci, nom et age, or quand on l'utilise, on n'utilise pas explicitement le paramètre ceci. En fait, ceci correspond à alice dans la construction de l'instance alice, et à bob dans celle de bob. Dans des langages on a this, dans d'autre on a self.
    0
  4. Adeline_ccm
     
    Merci pour la réponse mais je crois que je me suis lancé dans un truc qui me dépasse. J'ai fait les exemples dans codelab et my first app, mais a part recopier ce qu'ils disent c'est tout ce que je fais. Je ne trouve pas le point commun entre chaque exemple et encore moins avec ce que je voulais faire. Je pense qu'il faut déjà connaître le codage info pour y comprendre quelque chose, dommage...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dachiasse Messages postés 1932 Statut Membre 153
     
    D'accord, je vais essayer de mettre des mots clés sur le problème que tu présentes. Tu parles d'algorithmique. C'est la création et donc la méthode pour construire des algorithmes.

    Il peut y avoir plusieurs algorithmes pour une finalité. Exemple : je veux parcourir tous les éléments d'une liste. On peut partir du début à la fin ou de la fin au début, ou du 3ème élément et on parcourt de manière ascendante ou descendante. Maintenant, quel est le parcours le plus logique pour un humain ? Le parcours du début à la fin. En algorithme ça donnerait :
    Liste = [élément 1, élément 2, ..., élément n]
    compteur = 1
    TANT QUE compteur <= n:
    lire(élément compteur)
    compteur = compteur + 1

    Les langages populaires ont un système de parcours d'élément qu'on appelle le POUR CHAQUE :
    Liste = [élément 1, élément 2, ..., élément n]
    POUR CHAQUE élément de Liste:
    lire(élément)

    Les 2 codes font les mêmes opérations.

    Le mieux serait que tu t'entraînes sur des choses du quotidien.
    Par exemple, je décide, lors des provisions, de me rapprocher de 80 % du ticket de caisse pour des produits indispensables, et 20 % pour des produits dispensables. Je vais faire les courses, j'ai un ticket de 100 €. J'ai 30 produits. Sur un cahier, j'identifie les produits par sa position sur le ticket, donc, de 1 à 30, par la nécessité et par le prix. J'aurai sur le cahier :
    PRODUIT | NÉCESSAIRE |PRIX
    1 | OUI | 2€
    2 | NON | 6€
    ...
    30 | NON | 4€

    Ensuite, je vais créer 2 listes. Une liste que je vais nommer
    produits_indispensables
    et une autre
    produits_plaisir
    à l'intérieur de ces listes, les éléments qu'elles contiendront seront pour la première, le PRIX de chaque PRODUIT dont NÉCESSAIRE est à OUI et le PRIX de chaque PRODUIT dont NÉCESSAIRE est à NON pour la seconde liste :
    produits_indispensables = [2€, ...]
    produits_plaisir = [6€, ..., 4€]

    Ensuite, je veux la somme cumulée de chaque liste et surtout, stocker ces résultats. Pour ensuite, additionner ces 2 résultats, et donc, vérifier que ça fait bien 100 €. Je veux aussi vérifier le pourcentage.
    1) Je dois savoir comment on fait une somme cumulée. Pas besoin d'ordinateur, on part de 0, on ajoute la valeur de chaque élément, à la fin du parcours des éléments on a une valeur X. Sur [1,5,3] on obtient 0 + 1 + 5 + 3 = 9. En code :
    liste = [1, 5, 3]
    valeur_cumulée = 0
    POUR CHAQUE élément de liste:
    valeur_cumulée = valeur_cumulée + élément
    afficher(valeur_cumulée) // affichera : 9

    Pour avoir la somme des 2 valeurs cumulées. Autant faire une fonction :
    FONCTION somme_cumulée(liste):
    valeur_cumulée = 0
    POUR CHAQUE élément de liste:
    valeur_cumulée = valeur_cumulée + élément
    RETOURNER valeur_cumulée
    liste_1 = [1, 5, 3]
    liste_2 = [1, 3, 7]
    total_liste_1 = somme_cumulée(liste_1)
    total_liste_2 = somme_cumulée(liste_2)
    Le terme RETOURNER est important pour le stockage dans les variables
    total_liste_1
    et
    total_liste_2
    car c'est la valeur de sortie de la fonction
    somme_cumulée

    Bon, on sait comment faire une somme cumulée. On additionne simplement :
    grand_total = total_liste_1 + total_liste_2
    Enfin, on s'attaque au pourcentage afin de vérifier le respect du 80/20. Encore une fonction :
    FONCTION pourcentage(valeur, total):
    résultat = valeur * 100 / total
    RETOURNER résultat
    pourcentage_produits_nécessaires = pourcentage(total_liste_1, grand_total)
    pourcentage_produits_plaisir = pourcentage(total_liste_2, grand_total)

    Tu peux lire le résultat et vérifier le 80/20.

    Que ça te paraisse laborieux ou non, la chose la plus importante qui fait progresser et donne envie de continuer c'est la récompense.
    J'ai fait mon algorithme pour vérifier le 80/20 après mes premières courses. AVANT de lancer les opérations, je me dis par exemple : "Je peux dépenser 50 € pour le plaisir. Si je dépasse 90 %, je m'octroie le droit de dépenser les 50 €. Si je suis entre 80 et 90%, je dépense 40 € et préserve 10 €..." Ainsi de suite.
    0
  7. Adeline_ccm
     
    j'ai suivi ton exemple en le transposant à mon cas :

    Listes :  
    quantité_pourcent = [A1, B1, C1, D1, E1, F1, G1, H1, I1]
    quantité_gr = [A2, B2, C2, D2, E2, F2, G2, H2, I2]
    resultat_quantité = [A3, B3, ..., I3]

    Pour calculer le total en fonction des listes :
    if
    "boutton % coché"
    valeur_cumulé = 0
    POUR CHAQUE élément de liste quantité_poucent :
    valeur liste total = )valeur quantité_Totale * valeur quantité_pourcent) /100
    RETOURNER (valeur_cumulée)

    if
    "boutton gr. coché"
    valeur_cumulé = 0
    POUR CHAQUE élément de liste quantité_gr :
    valeur liste total = valeur quantité_gr * 1
    RETOURNER (valeur_cumulée)

    Pour avoir la somme des valeurs cumulées de la liste resultat :

    FONCTION somme-cumulée(liste) :
    valeur_cumulée = 0
    POUR CHAQUE élément de liste :
    valeur_cumulée = valeur_cumulée + élément
    RETOURNER valeur_cumulée
    liste resultat_quantité = [A3, B3, ..., I3]
    total_resultat_quantité = somme_cumulée(resultat_quantité)

    Pour vérifier le respect que resultat_quantité est = à quatité_Total :

    FONCTION pourcentage(valeur, total):
    résultat = valeur * 100 / total
    RETOURNER résultat
    pourcentage_resultat_quantité = pourcentage(quantité_totale)


    Quels sont les choses qui ne vont pas ?

    <?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"
        android:background="#8BC34A"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/I3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="130dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/control"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/I2"
            app:layout_constraintTop_toBottomOf="@+id/H3" />
    
        <TextView
            android:id="@+id/H3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/I3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/H2"
            app:layout_constraintTop_toBottomOf="@+id/G3" />
    
        <TextView
            android:id="@+id/G3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/H3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/G2"
            app:layout_constraintTop_toBottomOf="@+id/F3" />
    
        <TextView
            android:id="@+id/F3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/G3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/F2"
            app:layout_constraintTop_toBottomOf="@+id/E3" />
    
        <TextView
            android:id="@+id/D3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/E3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/D2"
            app:layout_constraintTop_toBottomOf="@+id/C3" />
    
        <TextView
            android:id="@+id/E3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/F3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/E2"
            app:layout_constraintTop_toBottomOf="@+id/D3" />
    
        <TextView
            android:id="@+id/C3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/D3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/C2"
            app:layout_constraintTop_toBottomOf="@+id/B3" />
    
        <TextView
            android:id="@+id/B3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/C3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/B2"
            app:layout_constraintTop_toBottomOf="@+id/A3" />
    
        <EditText
            android:id="@+id/Ph_I"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="130dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/control"
            app:layout_constraintEnd_toStartOf="@+id/Ing_I"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_H" />
    
        <EditText
            android:id="@+id/Ph_B"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_C"
            app:layout_constraintEnd_toStartOf="@+id/Ing_B"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_A" />
    
        <EditText
            android:id="@+id/Ph_C"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_D"
            app:layout_constraintEnd_toStartOf="@+id/Ing_C"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_B" />
    
        <EditText
            android:id="@+id/Ph_A"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_B"
            app:layout_constraintEnd_toStartOf="@+id/Ing_A"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Phase" />
    
        <EditText
            android:id="@+id/Ph_D"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_E"
            app:layout_constraintEnd_toStartOf="@+id/Ing_D"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_C" />
    
        <EditText
            android:id="@+id/Ph_G"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_H"
            app:layout_constraintEnd_toStartOf="@+id/Ing_G"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_F" />
    
        <EditText
            android:id="@+id/Ph_H"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_I"
            app:layout_constraintEnd_toStartOf="@+id/Ing_H"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_G" />
    
        <EditText
            android:id="@+id/Ph_E"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_F"
            app:layout_constraintEnd_toStartOf="@+id/Ing_E"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_D" />
    
        <EditText
            android:id="@+id/Ing_A"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_B"
            app:layout_constraintEnd_toStartOf="@+id/A1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_A"
            app:layout_constraintTop_toBottomOf="@+id/Ingrédients" />
    
        <EditText
            android:id="@+id/Ing_B"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_C"
            app:layout_constraintEnd_toStartOf="@+id/B1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_B"
            app:layout_constraintTop_toBottomOf="@+id/Ing_A" />
    
        <EditText
            android:id="@+id/Ing_C"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_D"
            app:layout_constraintEnd_toStartOf="@+id/C1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_C"
            app:layout_constraintTop_toBottomOf="@+id/Ing_B" />
    
        <EditText
            android:id="@+id/Ing_D"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_E"
            app:layout_constraintEnd_toStartOf="@+id/D1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_D"
            app:layout_constraintTop_toBottomOf="@+id/Ing_C" />
    
        <EditText
            android:id="@+id/Ing_E"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_F"
            app:layout_constraintEnd_toStartOf="@+id/E1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_E"
            app:layout_constraintTop_toBottomOf="@+id/Ing_D" />
    
        <EditText
            android:id="@+id/Ing_F"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_G"
            app:layout_constraintEnd_toStartOf="@+id/F1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_F"
            app:layout_constraintTop_toBottomOf="@+id/Ing_E" />
    
        <EditText
            android:id="@+id/Ing_G"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_H"
            app:layout_constraintEnd_toStartOf="@+id/G1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_G"
            app:layout_constraintTop_toBottomOf="@+id/Ing_F" />
    
        <EditText
            android:id="@+id/Ing_H"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ing_I"
            app:layout_constraintEnd_toStartOf="@+id/H1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_H"
            app:layout_constraintTop_toBottomOf="@+id/Ing_G" />
    
        <EditText
            android:id="@+id/Ing_I"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:layout_marginBottom="130dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/control"
            app:layout_constraintEnd_toStartOf="@+id/I1"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ph_I"
            app:layout_constraintTop_toBottomOf="@+id/Ing_H" />
    
        <EditText
            android:id="@+id/F1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:autofillHints=""
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/G1"
            app:layout_constraintEnd_toStartOf="@+id/F2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_F"
            app:layout_constraintTop_toBottomOf="@+id/E1" />
    
        <EditText
            android:id="@+id/B1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/C1"
            app:layout_constraintEnd_toStartOf="@+id/B2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_B"
            app:layout_constraintTop_toBottomOf="@+id/A1" />
    
        <EditText
            android:id="@+id/H1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/I1"
            app:layout_constraintEnd_toStartOf="@+id/H2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_H"
            app:layout_constraintTop_toBottomOf="@+id/G1" />
    
        <EditText
            android:id="@+id/E1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/F1"
            app:layout_constraintEnd_toStartOf="@+id/E2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_E"
            app:layout_constraintTop_toBottomOf="@+id/D1" />
    
        <EditText
            android:id="@+id/G1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/H1"
            app:layout_constraintEnd_toStartOf="@+id/G2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_G"
            app:layout_constraintTop_toBottomOf="@+id/F1" />
    
        <EditText
            android:id="@+id/I2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="130dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/control"
            app:layout_constraintEnd_toStartOf="@+id/I3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/I1"
            app:layout_constraintTop_toBottomOf="@+id/H2" />
    
        <EditText
            android:id="@+id/D2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/E2"
            app:layout_constraintEnd_toStartOf="@+id/D3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/D1"
            app:layout_constraintTop_toBottomOf="@+id/C2" />
    
        <EditText
            android:id="@+id/C2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/D2"
            app:layout_constraintEnd_toStartOf="@+id/C3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/C1"
            app:layout_constraintTop_toBottomOf="@+id/B2" />
    
        <EditText
            android:id="@+id/G2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/H2"
            app:layout_constraintEnd_toStartOf="@+id/G3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/G1"
            app:layout_constraintTop_toBottomOf="@+id/F2" />
    
        <EditText
            android:id="@+id/F2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/G2"
            app:layout_constraintEnd_toStartOf="@+id/F3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/F1"
            app:layout_constraintTop_toBottomOf="@+id/E2" />
    
        <EditText
            android:id="@+id/A2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/B2"
            app:layout_constraintEnd_toStartOf="@+id/A3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/A1"
            app:layout_constraintTop_toBottomOf="@+id/Total_Ingr" />
    
        <EditText
            android:id="@+id/H2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/I2"
            app:layout_constraintEnd_toStartOf="@+id/H3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/H1"
            app:layout_constraintTop_toBottomOf="@+id/G2" />
    
        <EditText
            android:id="@+id/B2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/C2"
            app:layout_constraintEnd_toStartOf="@+id/B3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/B1"
            app:layout_constraintTop_toBottomOf="@+id/A2" />
    
        <EditText
            android:id="@+id/E2"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/F2"
            app:layout_constraintEnd_toStartOf="@+id/E3"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/E1"
            app:layout_constraintTop_toBottomOf="@+id/D2" />
    
        <EditText
            android:id="@+id/A1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAccessibility="no"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/B1"
            app:layout_constraintEnd_toStartOf="@+id/A2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_A"
            app:layout_constraintTop_toBottomOf="@+id/Ingrédients" />
    
        <TextView
            android:id="@+id/Total_Ingr"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginTop="150dp"
            android:layout_marginBottom="1dp"
            android:text="@string/total"
            android:textAlignment="center"
            android:textColor="#FFFFFF"
            android:textSize="14sp"
            android:textStyle="italic"
            app:layout_constraintBottom_toTopOf="@+id/A3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/radioGroup"
            app:layout_constraintTop_toBottomOf="@+id/Titre" />
    
        <RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="107dp"
            android:layout_height="22dp"
            android:layout_marginBottom="5dp"
            android:orientation="horizontal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/A2"
            app:layout_constraintEnd_toStartOf="@+id/Total_Ingr"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ingrédients">
    
            <RadioButton
                android:id="@+id/radioButton1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:buttonTint="#FFFFFF"
                android:text="@string/percentage"
                android:textAlignment="center"
                android:textColor="@color/white" />
    
            <RadioButton
                android:id="@+id/radioButton2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:buttonTint="#FFFFFF"
                android:text="@string/gram"
                android:textAlignment="center"
                android:textColor="@color/white" />
        </RadioGroup>
    
        <TextView
            android:id="@+id/Phase"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:text="@string/phase"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textStyle="italic"
            app:layout_constraintBaseline_toBaselineOf="@+id/Ingrédients"
            app:layout_constraintEnd_toStartOf="@+id/Ingrédients"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent" />
    
        <TextView
            android:id="@+id/Ingrédients"
            android:layout_width="168dp"
            android:layout_height="22dp"
            android:text="@string/ingredients"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textColorHint="@color/white"
            android:textStyle="italic"
            app:layout_constraintBaseline_toBaselineOf="@+id/Total_Ingr"
            app:layout_constraintEnd_toStartOf="@+id/radioGroup"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Phase" />
    
        <EditText
            android:id="@+id/I1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="130dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/control"
            app:layout_constraintEnd_toStartOf="@+id/I2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_I"
            app:layout_constraintTop_toBottomOf="@+id/H1" />
    
        <EditText
            android:id="@+id/C1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/D1"
            app:layout_constraintEnd_toStartOf="@+id/C2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_C"
            app:layout_constraintTop_toBottomOf="@+id/B1" />
    
        <EditText
            android:id="@+id/D1"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"
            android:textAlignment="center"
            app:layout_constraintBottom_toTopOf="@+id/E1"
            app:layout_constraintEnd_toStartOf="@+id/D2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/Ing_D"
            app:layout_constraintTop_toBottomOf="@+id/C1" />
    
        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/guideline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.6" />
    
        <EditText
            android:id="@+id/Ph_F"
            android:layout_width="40dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="@color/white"
            android:ems="10"
            android:importantForAutofill="no"
            android:inputType="text"
            android:textAlignment="center"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/Ph_G"
            app:layout_constraintEnd_toStartOf="@+id/Ing_F"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/Ph_E" />
    
        <TextView
            android:id="@+id/total"
            android:layout_width="159dp"
            android:layout_height="21dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:text="@string/total_Quantity"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textStyle="italic"
            app:layout_constraintBaseline_toBaselineOf="@+id/quantité_Totale"
            app:layout_constraintEnd_toStartOf="@+id/quantité_Totale"
            app:layout_constraintHorizontal_bias="0.526"
            app:layout_constraintStart_toStartOf="parent" />
    
        <EditText
            android:id="@+id/editTextTextPersonName19"
            android:layout_width="356dp"
            android:layout_height="89dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="72dp"
            android:background="@color/white"
            android:ems="10"
            android:hint="@string/comments"
            android:importantForAutofill="no"
            android:inputType="textPersonName"
            android:textAlignment="textStart"
            android:textSize="12sp"
            android:textStyle="italic"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent" />
    
        <EditText
            android:id="@+id/quantité_Totale"
            android:layout_width="72dp"
            android:layout_height="24dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="4dp"
            android:background="#FFFFFF"
            android:ems="10"
            android:importantForAutofill="no"
            android:inputType="number"
            app:layout_constraintBottom_toTopOf="@+id/editTextTextPersonName19"
            app:layout_constraintEnd_toStartOf="@+id/b_calculer" />
    
        <Button
            android:id="@+id/b_calculer"
            android:layout_width="113dp"
            android:layout_height="34dp"
            android:layout_marginEnd="20dp"
            android:text="@string/calculate"
            android:textSize="12sp"
            android:textStyle="italic"
            app:layout_constraintBaseline_toBaselineOf="@+id/quantité_Totale"
            app:layout_constraintEnd_toEndOf="parent" />
    
        <EditText
            android:id="@+id/Titre"
            android:layout_width="361dp"
            android:layout_height="21dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="16dp"
            android:background="@color/white"
            android:ems="10"
            android:hint="@string/title"
            android:importantForAutofill="no"
            android:inputType="textPersonName"
            android:textAlignment="center"
            android:textColor="@color/white"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <TextView
            android:id="@+id/A3"
            android:layout_width="50dp"
            android:layout_height="22dp"
            android:layout_marginBottom="1dp"
            android:background="#EAABC1"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="14sp"
            app:layout_constraintBottom_toTopOf="@+id/B3"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/A2"
            app:layout_constraintTop_toBottomOf="@+id/Total_Ingr" />
    
        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="391dp"
            android:layout_height="38dp"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            android:theme="?attr/actionBarTheme"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
        <ImageButton
            android:id="@+id/imageButton"
            android:layout_width="37dp"
            android:layout_height="36dp"
            android:layout_marginStart="12dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:srcCompat="@android:drawable/ic_menu_share" />
    
        <TextView
            android:id="@+id/control"
            android:layout_width="72dp"
            android:layout_height="24dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/quantité_Totale"
            app:layout_constraintEnd_toStartOf="@+id/message" />
    
        <TextView
            android:id="@+id/message"
            android:layout_width="116dp"
            android:layout_height="22dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="16dp"
            app:layout_constraintBottom_toTopOf="@+id/b_calculer"
            app:layout_constraintEnd_toEndOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    0
    1. dachiasse Messages postés 1932 Statut Membre 153
       
      Salut,

      Pour une lecture plus agréable, je te conseille d'ouvrir un éditeur de texte, tu peux télécharger notapad++ qui est libre, gratuit, apprécié, et facile à utiliser : https://notepad-plus-plus.org/downloads/
      Avec ce logiciel, tu écris ton algorithme, et tu penses à indenter certaines lignes, quand tu as lu, dans mes algorithmes, des lignes qui ne démarrent qu'après quelques espaces, il y en 4, c'est une convention, c'est une indentation de 4 espaces. Quand tu as l'algo, tu te places dans le champs de réponse, tu cliques sur l'icône
      <>
      à côté du
      S
      de souligner, tu colles l'algo, et l'indentation sera respectée.

      Il faut bien faire attention au signe d'affectation et au signe de comparaison d'égalité. Je vois que tu as écris :
      valeur_cumulé = 0
      , tu affectes la valeur
      0
      à la variable
      valeur_cumulée
      , puis plus loin :
       pourcentage_resultat_quantité = pourcentage(quantité_totale)
      , tu compares que
      pourcentage_resultat_quantité
      est bien égal à
      pourcentage(quantité_totale)
      . Le problème, c'est qu'il faut 2 signes distinctifs, tu doubles le signe = pour la comparaison.
      x = 2
      (affectation),
      x == 2
      (comparaison).

      Listes :
      quantité_pourcent = [A1, B1, C1, D1, E1, F1, G1, H1, I1]
      quantité_gr = [A2, B2, C2, D2, E2, F2, G2, H2, I2]
      resultat_quantité = [A3, B3, ..., I3]
      C'est le fondement que tu as choisis, il est correct, mais, il faut le respecter car c'est la base de ton algorithme. Il faut savoir qu'il n'y a aucun fondement toujours meilleur qu'un autre. Ça dépend de ce que l'on souhaite faire. Il est normal de le modifier et de rectifier en cours de route. Ça arrive quand on se dit : "Je veux faire cette opération mais avec cette base, je n'y arrive pas.", c'est pas grave. On n'évitera pas la prise de tête, mais, on peut éviter la migraine en faisant de la programmation modulaire. C'est une programmation qui rend chaque opération indépendante les unes des autres et on les relie entre elles par les paramètres d'entrée et de sortie des fonctions. Les paramètres d'entrée sont les paramètres dont une fonction a besoin pour effectuer des opération. Le résultat est le paramètre de sortie. Ça paraît compliqué, mais, en progressant, tu verras que ça te facilitera les futures tâches. De toute façon, le premier algorithme est améliorable, et le suivant, etc. On arrête d'améliorer quand le résultat nous satisfait et en second lieu, quand la vitesse d'exécution est rapide et que la quantité de mémoire est faible. Ça rend un algorithme efficace, mais, tu n'en es pas là. Tu dois te concentrer sur le respect du résultat.

      Pour calculer le total en fonction des listes :
      if
      "boutton % coché"
      valeur_cumulé = 0
      POUR CHAQUE élément de liste quantité_poucent :
      valeur liste total = )valeur quantité_Totale * valeur quantité_pourcent) /100
      RETOURNER (valeur_cumulée)
      Ici, tu mélanges les instructions, tu as une condition, un code classique et une étape d'une fonction qui n'existe pas. RETOURNER est l'étape qui affecte une valeur au paramètres de sortie. Dans :
      FONCTION pourcentage(valeur, total):
      résultat = valeur * 100 / total
      RETOURNER résultat
      la variable résultat n'existe QUE dans la fonction pourcentage(valeur, total). On affecte le calcul à ce paramètre de sortie. Quand on continue dans le code principal, on peut donner un autre nom comme variable et l'affectation sera l'appel de la fonction. On appelle une fonction comme ceci généralement :
      variable_de_résultat = pourcentage(20, 100) // variable_de_résultat == 20 ? VRAI
      C'est pareil pour le code suivant.

      FONCTION somme-cumulée(liste) :
      valeur_cumulée = 0
      POUR CHAQUE élément de liste :
      valeur_cumulée = valeur_cumulée + élément
      RETOURNER valeur_cumulée
      liste resultat_quantité = [A3, B3, ..., I3]
      total_resultat_quantité = somme_cumulée(resultat_quantité)
      C'est franchement pas mal, l'idée est là. Mais, tu ne respectes pas l'indentation. Petit bémol, plus haut dans ton message, tu as une liste de A3 à I3 qui est dans le code principal, c'est une liste réutilisable. Réécrire la liste plus loin, comme ici, est inutile. C'est quand même le meilleur code proposé jusqu'ici, bravo !

      FONCTION pourcentage(valeur, total):
      résultat = valeur * 100 / total
      RETOURNER résultat
      pourcentage_resultat_quantité = pourcentage(quantité_totale)
      aïe ! C'est moins bien. Déjà, la dernière ligne signifie que tu affectes à
      pourcentage_resultat_quantité
      la valeur du paramètre de sortie de la fonction
      pourcentage
      . Et j'ai du mal à savoir si c'est ce que tu veux faire. Ou alors, tu veux comparer que la valeur de sortie de la fonction
      pourcentage
      soit bien égale au
      poucentage_resultat_quantité
      . Dans le premier cas, c'est ok mais il y a un hic. Dans le second cas, ce n'est pas le bon signe qui est utilisé.
      Le hic est simple. Quand tu as construis la fonction
      pourcentage
      , tu lui as donné 2 paramètres d'entrée :
      valeur
      et
      total
      . Puis, quand tu as appelé la fonction, tu ne lui as donné qu'un seul argument de paramètre d'entrée, or, il en faut 2. Je pense que tu as oublié le premier paramètre
      valeur
      et comme argument tu dois mettre une valeur d'une case. Pour ne pas te perdre entre paramètre et argument. Le paramètre c'est le nom qu'on donne dans la parenthèse de la construction d'une fonction, l'argument c'est la valeur que l'on affecte au paramètre correspondant. Dans ton code,
      valeur
      est le paramètre numéro 1 d'entrée,
      quantité_totale
      est l'argument de ce paramètre parce que l'ordinateur lit de le code de gauche à droite. Il va t'envoyer une erreur comme :
      "La fonction a 2 paramètres. Je ne reçois qu'un argument. Il manque un autre argument."


      Pour résumer, tu dois respecter la cohérence des instructions tout le long de ton code :
      - pas besoin de réaffecter avec les mêmes valeurs une variable
      - avoir autant d'arguments que de paramètres

      Pour le code XML, je ne saurais t'aider. Je sais que c'est le code qui gère le positionnement des graphiques de l'application. Je suppose que tu utilises le gestionnaire visuel et ce XML est auto-généré par ordinateur.

      En revanche, pour revenir au problème initial. Selon la case coché, effectuer tel calcul. Tu as 2 cases à cocher, donc, tu peux créer 2 variables. Tu dois décider quelle case est cochée dès l'ouverture de l'application. Logiquement, on peut choisir la case la plus à gauche. La case la plus à gauche est %. Le problème c'est qu'avec un code retranscrit pour l'ordinateur de :
      if
      "boutton % coché"
      l'ordinateur ne va pas comprendre. Pour qu'il comprenne, il faut utiliser les variables booléennes, du nom du mathématicien George Boole. Elles ne font pas peur, ce sont, sans doute, les variables, les plus puissantes car très rapides et légères en mémoire. On les connaît avec leur 2 uniques valeurs :
      VRAI
      ou
      FAUX
      . C'est tout. Et pour info, en informatique, je le répète, ce qui est 99.99999999999... % VRAI est... FAUX. On reprend, on décide qu'à l'ouverture de l'appli, la case % est visuellement cochée. Il faut en informer l'ordinateur car il distingue le visuel du code. On a 2 case à cocher, créons 2 variables :
      coche_pourcentage
      coche_gr

      On sait que visuellement, la case % est cochée, et que la case gr n'est pas coché. On fait le parallèle, coché, ça veut dire VRAI, pas coché, ça veut dire FAUX, donc :
      coche_pourcentage = VRAI
      coche_gr = FAUX

      Enfin, il faut connaître le fonctionnement entre la partie graphique et la partie calcul (le code) pour savoir comment modifier les coches.
      0
    2. BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention   3 930 > dachiasse Messages postés 1932 Statut Membre
       
      Bonjour,

      Je me permets juste une petite remarque: Adeline, as-tu conscience que le fichier xml ne fait pas tout ? Il décrit ton interface graphique, ok, mais derrière, il te faut de l'intelligence, du code en Java ou en Kotlin. Tu en as conscience ? Je ne vois pas un seul bout de code...
      0
    3. Adeline_ccm > BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Je sais bien, je cherche juste à comprendre comment ça marche. Que j'arrive pas a faire fonctionner mon appli tant pis.
      0
    4. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Je peux comprendre qu'en ayant quotidiennement et toujours sur soi son smartphone, on est davantage tenté de faire une appli smartphone qu'un logiciel sur PC. Mais, honnêtement, créer une appli, pour un débutant, c'est une vraie usine à gaz. Kotlin est un assez jeune langage qui hérite encore de beaucoup d'instructions de Java. Ça implique d'apprendre 2 langages.
      Je vois que ton objectif est de comprendre comment ça marche. Dans ce cas, je te conseille d'apprendre la partie graphique et la partie calcul (ou intelligence) de manière séparée. Je peux te conseiller ce cours d'algorithme : http://pise.info/algo/codage.htm n'hésite pas si tu as des questions. Je ne vais pas te conseiller nommément un langage de programmation, tu peux rester sur Kotlin, mais, il faudra voir Java également. La base de différents langages avec paradigme (façon) de programmation similaire est juste différente au niveau de la syntaxe. En gros, une fois que tu as bien appris la base d'un langage X, tu apprendras les bases d'un langage Y en un temps très court.
      0
    5. BunoCS Messages postés 5034 Date d'inscription   Statut Modérateur Dernière intervention   3 930 > dachiasse Messages postés 1932 Statut Membre
       
      En vrai, peut importe que tu développes pour un PC, un serveur, un smartphone, un circuit imprimé, etc. La difficulté se trouve trouve dans l'apprentissage du 1er langage. Après, c'est presque comme une nouvelle langue vivante : la base est là, c'est juste une question de vocabulaire et de syntaxe.
      Kotlin est un assez jeune langage qui hérite encore de beaucoup d'instructions de Java. Ça implique d'apprendre 2 langages.
      Je ne suis pas d'accord...On peut très bien coder en Kotlin sans connaître Java, mais ce n'est pas le sujet ici ;)
      0
  8. Adeline_ccm
     
    ça, ça ressemble a quelque chose ?

    variable coche_poucentage, coche_gr, quantité_totale
    Listes :
    quantité_pourcent = [A1, B1, C1, D1, E1, F1, G1, H1, I1]
    quantité_gr = [A2, B2, C2, D2, E2, F2, G2, H2, I2]
    resultat_quantité = [A3, B3, ..., I3]

    lire coche_pourcantage, coche_gr
    si coche_poucentage = vrai alors
    écrire quantité_totale * quantité_poucent / 100
    sinon
    écrire quantité_gr

    lire resultat_quantité
    si resultat_quantité = quantité_totale alors
    "ok"
    sinon
    quantité_total - resultat_quantité
    0
    1. dachiasse Messages postés 1932 Statut Membre 153
       
      As-tu ouvert et commencé à lire ce cours : http://pise.info/algo/codage.htm ? Il utilise une autre convention pour affecter, par exemple, la valeur entière
      50
      à la variable
      age
      :
      VARIABLES
      age <- 50
      FIN VARIABLES
      Tu utilises le signe
      =
      pour l'affectation. Or, à la ligne :
      si resultat_quantité = quantité_totale alors
      tu utilises aussi le signe
      =
      pour la comparaison. Dans certains langages de programmation, on compare l'égalité avec le signe
      =
      doublé :
      ==
      Tu peux utiliser cette convention.

      Mais, je te conseille d'annoter en amont ta propre convention par exemple au début de chaque algorithme tu pourrais faire :
      CONVENTION
      J'utilise le signe = pour l'affectation. Exemple : age = 50 signifie j'affecte la valeur 50 à la variable age ;
      J'utilise le double signe == pour la comparaison d'égalité. Exemple : age == 50 signifie je compare la valeur de la variable age à l'entier 50 ;
      Pour la boucle TANT QUE, j'écris :
      TANT QUE condition(s) FAIRE :
      instructions
      FIN TANT QUE
      [...]
      FIN CONVENTION

      Revenons à cette ligne
      si resultat_quantité = quantité_totale alors
      étant donné que tu utilise
      =
      pour l'affectation. Il faut savoir que les booléens sont tellement puissants que les conditions d'une instructions
      SI
      se transforment TOUJOURS en booléen. La valeur entière
      0
      vaut
      FAUX
      en booléen, et toute autre valeur (1, -1, 542; -4412, ...) vaut
      VRAI
      . Voici 2 exemples simples pour te montrer l'erreur d'utilisation de signe :
      valeur = 0
      SI valeur = 0 ALORS:
      "La valeur vaut 0."
      SINON:
      "La valeur ne vaut pas 0."

      Voilà ce qui se passe, si le programme qui lit le code (le compilateur) ne détecte pas l'erreur :
      on affecte la valeur 0 à la variable valeur. L'ordinateur va lire la condition SI comme suit :
      SI ; valeur = 0 se transforme en FAUX ; ALORS: après transformation l'ordinateur a :
      SI FAUX ALORS:
      , donc le résultat sera : "La valeur ne vaut pas 0."
      Maintenant :
      valeur = 0
      SI valeur == 0 ALORS:
      "La valeur vaut 0."
      SINON:
      "La valeur ne vaut pas 0."

      Lors de la condition
      SI
      l'ordinateur fait : SI ; valeur == 0 => existe-t-il une variable
      valeur
      ? OUI, quelle est sa valeur lors de l'affectation ? 0, est-ce que ce 0 de l'affectation est égal au 0 de la condition ? Oui, on transforme valeur == 0 en VRAI. Résultat : "La valeur vaut 0."

      Ensuite, il faut que tu penses à indenter l'algorithme pour une lecture plus simple. De plus, certains langages obligent à indenter. L'évolution de ton algorithme est bonne, il y a des lacunes, surtout logiques, mais, c'est pas mal du tout. Dans la ligne :
      lire coche_pourcantage, coche_gr
      je pense que tu cherches à savoir quels sont les cases cochées. De manière littérale :
      J'ai 2 cases : % et gr, si la première est coché j'effectue le calcul "calcul %", si c'est la deuxième, j'effectue le calcul "calcul gr"
      devient en algorithme :
      VARIABLES
      case_pourcentage = VRAI # commentaire : à l'ouverture de l'application, la case % sera cochée
      case_gr = FAUX # commentaire : à l'ouverture de l'application, la case gr sera décochée
      FIN VARIABLES
      CODE
      SI code_pourcentage ALORS : # rappel : l'ordi transforme en booléen toute comparaison, ici le booléen sera VRAI
      "calcul %"
      SINON SI code_gr ALORS :
      "calcul gr"
      SINON :
      "erreur : aucun calcul possible."
      FIN SI
      FIN CODE
      0
  9. Adeline_ccm
     
    Je comprends pas valeur = 0. La valeur de quelle donné ? Quantité_totale ?
    Si quantité_totale = 0 alors ne rien faire sinon calculer ?
    0
    1. dachiasse Messages postés 1932 Statut Membre 153
       
      "Je comprends pas valeur = 0. La valeur de quelle donné ? Quantité_totale ?"

      Si tu parles de ce pasage :
      Revenons à cette ligne

      si resultat_quantité = quantité_totale alors

      étant donné que tu utilise

      =

      pour l'affectation. Il faut savoir que les booléens sont tellement puissants que les conditions d'une instructions

      SI

      se transforment TOUJOURS en booléen. La valeur entière

      0

      vaut

      FAUX

      en booléen, et toute autre valeur (1, -1, 542; -4412, ...) vaut

      VRAI

      . Voici 2 exemples simples pour te montrer l'erreur d'utilisation de signe :

      valeur = 0
      SI valeur = 0 ALORS:
      "La valeur vaut 0."
      SINON:
      "La valeur ne vaut pas 0."

      Voilà ce qui se passe, si le programme qui lit le code (le compilateur) ne détecte pas l'erreur :
      on affecte la valeur 0 à la variable valeur. L'ordinateur va lire la condition SI comme suit :
      SI ; valeur = 0 se transforme en FAUX ; ALORS: après transformation l'ordinateur a :

      SI FAUX ALORS:

      , donc le résultat sera : "La valeur ne vaut pas 0."
      Maintenant :

      valeur = 0
      SI valeur == 0 ALORS:
      "La valeur vaut 0."
      SINON:
      "La valeur ne vaut pas 0."

      Lors de la condition

      SI

      l'ordinateur fait : SI ; valeur == 0 => existe-t-il une variable

      valeur

      ? OUI, quelle est sa valeur lors de l'affectation ? 0, est-ce que ce 0 de l'affectation est égal au 0 de la condition ? Oui, on transforme valeur == 0 en VRAI. Résultat : "La valeur vaut 0."


      Je n'ai pas été très clair. L'exemple que je prends avec la variable
      valeur
      est indépendante de ton algorithme. C'était pour te faire remarquer qu'on n'utilise jamais le même signe pour l'affectation et la comparaison d'égalité. Ce sont 2 opérations différentes donc il faut 2 signes différents

      "Si quantité_totale = 0 alors ne rien faire sinon calculer ? "
      Même erreur que plus haut, mauvais choix du signe pour la comparaison d'égalité.

      Je pense que tu saisis mal les subtilités car tu n'as peut-être pas encore commencé l'apprentissage d'un langage de programmation.

      https://kotlinlang.org/docs/reference/grammar.html#expressions ici, on voit que le comparateur d'égalité est
      ==
      et le comparateur d'inégalité (ou de différence) est
      !==
      .

      https://www.programiz.com/kotlin-programming/variable-types ici, au paragraphe Difference Between var and val en gros,
      val
      signifie qu'on veut une constante, c'est une variable qui ne peut pas varier, et
      var
      signifie qu'on veut une variable tout ce qu'il y a de plus classique.

      https://www.programiz.com/kotlin-programming/if-expression ici, comment utiliser l'expression conditionnelle
      SI ...


      https://www.programiz.com/kotlin-programming/hello-world ici, un code basique, le fameux Hello World !, et la fonction pour l'afficher à l'écran sur un terminal de commande comme cmd de Windows par exemple.

      Avec tout ça on peut essayer :
      fun main(){
          var valeur = 0
      
          if (valeur == 0) {
              println("La valeur vaut bien 0.")
          } else {
              println("La valeur ne vaut pas 0.")
          }
      }
      

      Pour exécuter ce code sous Windows 10, il faut télécharger quelques logiciels. Tu peux utiliser le très bon éditeur de développement intégré ou integrated development editor (IDE) Visual Studio Code de Microsoft. Il existe une version gratuite tout à fait correcte. https://code.visualstudio.com/docs/?dv=win64 puis il faut l'extension Kotlin : https://marketplace.visualstudio.com/items?itemName=mathiasfrohlich.Kotlin qui sert à écrire le code en Kotlin. Et enfin, un compilateur pour l'exécuter : https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

      Pour avoir les bases d'utilisation de VS Code : https://docs.microsoft.com/fr-fr/learn/modules/develop-web-apps-with-vs-code/

      Tu copie-colles mon code et tu verras que La valeur vaut bien 0. s'affichera. Si tu changes la ligne
      var valeur = 0
      par
      var valeur = 150
      , tu verras que La valeur ne vaut pas 0. s'affichera.
      0
    2. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      Donc ça ferai

      var resultat_quantité = 0

      Début
      Lire resultat_quantité
      Si resultat_quantité == quantité_totale alors
      Écrire "Formule ok" sinon
      Écrire "Différence de" quantité_totale - resultat_quantité
      Fin
      0
    3. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      C'est beaucoup mieux oui. Ça coule peut-être de source pour toi, mais, il faut bien déterminer et fixer le point de vue de ton pseudo-code. Ici, on voit qu'on se place sur le point de vue du pseudo-code et non de l'utilisateur. La ligne
      Lire resultat_quantité
      signifie que le code attend un valeur tapée au clavier et les lignes commençant par
      Écrire
      signifie que le code va afficher à l'écran ce qui suit entre guillemets ainsi que la valeur d'une variable ou d'une opération comme
      quantité_totale - resultat_quantité
      .

      Je viens de télécharger VS Code sur Linux, c'est franchement un bon IDE. De plus, s'il manque une extension, VS Code te la propose au téléchargement.
      0
    4. dachiasse Messages postés 1932 Statut Membre 153 > dachiasse Messages postés 1932 Statut Membre
       
      C'est la 3ème fois que je dois te le dire, mais, tu gagneras en lisibilité et pour toi et pour les autres si tu postes en utilisant la balise code du site. Plusieurs méthodes pour l'utiliser, mais, une que je trouve simple :
      tu tapes ton code ou algorithme dans un éditeur de texte. Bloc-Notes n'est pas conseillé, je t'ai suggéré Notepad++, mais, VS Code peut parfaitement servir d'éditeur de texte.
      Tu indentes le code ou l'algorithme. Une fois que c'est fait, tu le sélectionnes et le copies.
      Dans CCM, tu cliques sur l'icône <> et tu fais ctrl+v.


      Et lorsque tu posteras du code Kotlin, il n'y a pas (encore ?) l'attribut Kotlin, mais, Java s'en rapproche le plus pour avoir une couleur syntaxique agréable et correcte.

      En tout cas, tu progresses bien. Pense bien à attaquer un langage de programmation, tu apprendras les mécanismes et tu comprendras plus facilement les subtilités comme la différence entre l'affectation et la comparaison d'égalité.
      0
    5. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      A la base
      resultat_quantité
      est une liste
      resultat_quantité = [A3, B3, ..., I3] 
      . Avant d'écrire l'algorithme juste au dessus (qui est faut vue que
      resultat_quantité
      ne sera pas tapé au clavier mais calculé par l'appli) je ne devrais pas écrire un algorithme qui va additionner la liste ? c'est pas avec cette histoire de RETOURNER ?
      0
  10. Adeline_ccm
     
    Pour pouvoir additionner ma liste, il faut que je créé un tableau avec
    arrayOf
    ou
    Array
    ? Je ne comprends pas la subtilité entre les 2.
    0
    1. dachiasse Messages postés 1932 Statut Membre 153
       
      https://kotlinlang.org/docs/reference/basic-types.html#arrays

      De ce que je comprends, il n'y a pas de subtilité.
      Array
      est le nom de la classe, c'est le type. Comme
      Int</code<code>> pour
      les nombres entiers par exemple.
      arrayOf
      est la fonction qui sert à instancier une variable de type Array. On peut aussi instancier une variable de type
      Array
      avec
      Array(n)
      , n est le nombre d'élément dans la variable.

      https://kotlinlang.org/docs/reference/collections-overview.html#collection-types ici, tu as d'autres types de collections. La méthode d'instanciation est la même.

      Instancier signifie construire un objet selon le modèle de construction de la classe utilisée.

      Comme ta liste ne contient que des nombres, il est logique que tu utilises la classe
      IntArray
      et pour instancier
      intArrayOf
      .

      Kotlin est un langage qui peut être orienté objet. C'est un paradigme de programmation. Ce type de programmation permet de manipuler l'objet instanciée en utilisant des fonctions internes à la classe.

      https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/ ici, on voit que la classe
      Array
      a une propriété
      size
      qui retourne le nombre d'élément du tableau. Et si tu parcours la liste des méthodes, tu y verras celle que tu veux.
      0
    2. Adeline_CCM > dachiasse Messages postés 1932 Statut Membre
       
      J'ai regardé kotlinlang et là... c'est le drame.
      0
    3. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_CCM
       
      Si ta méthode d'apprentissage de Kotlin c'est : "Je veux tel élément pour mon créer mon appli. Je vais chercher comment on fait en Kotlin." Tu cours à l'échec assuré, ta vas te dégoûter.

      Mieux vaut apprendre les bases, programiz Kotlin a l'air pas trop mal. Tu lis, apprends et comprends chaque partie de leur tuto. kotlinlang doit être un support annexe. Les documentations de langage de programmation sont assez imbuvables parce qu'il y a tout mais il faut savoir chercher. Et pour savoir, il faut pratiquer, et pour pratiquer, les tutos ne sont jamais complets, mais, souvent suffisants.

      Que fait cette ligne selon toi :
      val x: IntArray = intArrayOf(1, 2, 3)
      ?
      0
    4. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      val
      concerne des données figées. Je n'arrive pas a comprendre ce que signifie
      Int
      . Il revient souvent, tout comme
      Strings
      mais là je crois que ça fait référence à du texte.
      intArrayOf(1, 2, 3)
      , c'est le tableau avec la ligne 1, 2 et 3. Donc, je dirais que ton tableau s'appelle x avec 3 lignes. Dans les exemples que je vois les variables sont déjà connues à l'avance et figées. Je ne trouve pas d'exemple lorsque les variables ne sont pas connues et où elles peuvent changer constamment.
      0
    5. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Salut,

      C'est ça. tu vois qu'il y a une syntaxe à respecter. Un mot clé, ici
      val
      , un nom de variable suivi des 2 points et de la classe (ou du type). Le reste coule de source. On utilise une fonction
      intArrayOf()
      pour insérer à la création les valeurs
      1
      ,
      2
      et
      3
      : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/int-array-of.html

      "Je ne trouve pas d'exemple lorsque les variables ne sont pas connues et où elles peuvent changer constamment."
      Fais des tests. Créer 2 variables, une avec le mot clé
      var
      l'autre avec le mot clé
      val
      , modifie les valeurs, exécute le code et constate.
      0
  11. Adeline_ccm
     
    ah j'ai trouvé que
    Int
    est un nombre entier.
    0
  12. dachiasse Messages postés 1932 Statut Membre 153
     
    En faisant quelques recherches, j'ai trouvé des similitudes entre une application Android et la création d'un site web.
    Pour créer une application Android, on peut utiliser XML ainsi qu'un langage de programmation comme Kotlin par exemple. J'ai fait le parallèle entre l'XML et l'HTML, et aussi, entre Kotlin et Javascript.

    Dans un dossier que tu peux appeler
    similitudes
    tu sauvegardes les fichiers suivants :

    1) un premier fichier avec uniquement du html. La page web est statique, on ne peut rien faire dans la liste. Tu nommes le fichier
    listeSansJS.html
    :
    <!DOCTYPE html>
    <html lang="fr-fr">
    <head>
        <!-- La ligne ci-dessous permet d'afficher correctement 
        les caractères accentués par exemple -->
        <meta charset="UTF-8">
        <!-- La ligne ci-dessous permet d'adapter 
        la page web à la largeur de l'écran -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Exemple sans Javascript</title>
    </head>
    <body>
        <ul>
            <li>Premier élement de la liste</li>
            <li>Deuxième élement de la liste</li>
            <li>Troisième élement de la liste</li>
            <li>Dernier élement de la liste</li>
        </ul>
    </body>
    </html>


    2) Quasiment le même fichier, mais, avec des modifications pour permettre l'interaction grâce à Javascript. Tu nommes le fichier
    listeAvecJS.html
    :
    <!DOCTYPE html>
    <html lang="fr-fr">
    <head>
        <!-- La ligne ci-dessous permet d'afficher correctement 
        les caractères accentués par exemple -->
        <meta charset="UTF-8">
        <!-- La ligne ci-dessous permet d'adapter 
        la page web à la largeur de l'écran -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Exemple avec Javascript</title>
    </head>
    <body>
        <ul>
            <li id="element_0">Premier élement de la liste</li>
            <li id="element_1">Deuxième élement de la liste</li>
            <li id="element_2">Troisième élement de la liste</li>
            <li id="element_3">Dernier élement de la liste</li>
        </ul>
        <!-- J'explique plus loin¹ ce que fait la ligne suivante -->
        <script src="remplir.js"></script>
    </body>
    </html>


    3) Enfin, le code en Javascript. Tu le nommes
    remplir.js
    ¹ :
    "use strict";
    
    // Il est conseillé d'initialiser 
    // dès le début les variables à utiliser.
    let elements = [];
    let element_a_ajouter = "";
    let debut_prompt = "Tu peux écrire quelque chose ici ("
    let fin_prompt = "/4) : ";
    let id_liste = "element_"
    
    
    for (let i = 1; i < 5; i++) {
        let total_prompt = debut_prompt + i + fin_prompt
        element_a_ajouter = window.prompt(total_prompt);
        elements.push(element_a_ajouter);
    }
    for (let i = 0; i < 4; i++) {
        let id_total = id_liste + i;
        document.getElementById(id_total).innerHTML = elements[i];
    }


    Avec ton navigateur web, tu ouvres le fichier
    listeSansJS.html
    puis le fichier
    listeAvecJS.html
    et tu constates.

    ¹ la ligne
    <script src="remplir.js"></script>
    se situe à la fin de la balise
    body
    pour minimiser le risque de lenteur à l'ouverture de la page web car un script Javascript peut être lent. Cette ligne va tout simplement récupérer le code Javascript à l'endroit où il se trouve avec l'attribut
    src
    . Le code source Javascript se nomme
    remplir.js
    et se trouve dans le même répertoire que le fichier html utilisé. J'utilise le chemin relatif, sous-entendu à l'emplacement du fichier html. Pour saisir la différence entre chemin relatif et chemin absolu : https://www.alsacreations.com/astuce/lire/78-Quelle-est-la-difference-entre-les-chemins-relatifs-et-absolus-.html
    0
    1. Adeline_ccm
       
      Hello,

      Si j'ai bien compris ce que j'ai fait hier, la fonction boucle (ou loop) est utilisée. Tu crois que je devais repenser ma formule pour qu'elle fasse une boucle à chaque editText à remplir (A3 à I3) ? Dans ce cas je pourrais abandonner l'idée les radioButton qui complexifient la formule pour pas grand chose d'utile.

      J'ai créer une nouvelle activité qui s'ouvre lorsque j'appuis sur un imageButton cela fonctionne mais j'avoue que je ne sais pas si ma méthode est très académique :

      fun inventory(view: View) {
              val inventory = Intent(this, Inventaire::class.java).also {
                  startActivity(it)
              }
          }
      0
    2. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Salut,

      Tu n'es pas obligée d'utiliser de boucle. Si je me souviens de l'interface graphique que tu as présentée, je vois un tableau avec des lignes à remplir. Pour chaque colonne, et si le nombre de lignes est fixe. Tu peux créer une liste. Et comme derrière chaque interface graphique il y a un gestionnaire d'événements, l'affichage se met à jour selon les événements.

      En faisant comme cela, on n'est pas contraint à parcourir toute la liste pour une seule modification.

      Pour la technique je ne sais pas. Je peux t'aider pour la méthode.

      Tout d'abord, je créerais les patrons des activités du début à la fin de l'application. Quand l'appli se lance, est-ce que le tableau est pré-rempli ou vide ? Je ne pense pas à la programmation. Une fois fait, je cherche les liens possibles entre les activités, ces liens sont à coder avec un langage de programmation.
      0
    3. Adeline_CCM > dachiasse Messages postés 1932 Statut Membre
       
      Quand l'appli ce lance l'appli est vide. Mais je me pose un question, ce que je cherche à faire existe déjà pour fonctionner sous Windows. La licence est gratuite : http://aromya.blogspot.com/2013/05/petit-programme-de-calcul-des-recettes.html?m=1

      Est ce qu'il n'y a pas un moyen de voir "l'envers du décor" ?

      En fait, tu l'auras compris j'ai un loisir pour lequel il y a un vide sous Android et je trouve ça dommage car cela serait très utile. Mais je me rends compte qu'il me manque énormément de connaissances pour parvenir à faire fonctionner cette appli.
      0
    4. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_CCM
       
      Je suis étonné qu'il n'existe pas une telle appli sur Android. Vu ton assiduité, tu as quand même envie d'apprendre je pense. Et c'est une bonne chose, sans pour autant en faire son métier, mais, au moins, ça permet de mieux comprendre les coulisses de la création de logiciel et en plus on développe sa logique qui peut être utile pour des domaines autres qu'informatique.

      Le cœur de l'appli que tu veux faire n'est pas compliqué, tu as déjà fait 80 % du boulot en Kotlin, les 20 % c'est du fignolage pas forcément indispensable. Il ne te manque plus qu'à trouver comment relier le calcul à l'interface graphique.

      Si tu finis ton appli et que tu es satisfaite de ton travail et que tu souhaites te (ré)orienter dans un métier de développeuse. Je pense que la grosse plus-value est d'apprendre à programmer en multithreading et en asynchrone. Ce sont 2 types de programmation très compliqués mais optimaux pour les processeurs qui ont de plus en plus de cœurs et threads que ce soit pour les PC ou les smartphones et tablettes.
      0
    5. Adeline_CCM > dachiasse Messages postés 1932 Statut Membre
       
      Pour te dire je suis dans un groupe Facebook qui compte pas moins de 75000 personnes, on échanges pas mal d'info, d'idées, de bon plan... mais rien sur le sujet d'une appli mobile. Juste des gens qui demandent si ça existe mais ils n'ont pas de réponses...
      0
  13. Adeline_ccm
     
    J'ai trouvé une video assez instructive, concenrant Java : https://www.youtube.com/watch?v=rtab7ALlxA8

    J'ai trouvé des infos sur les radioButton :
    public void onRadioButtonClicked(View view) {
        // Is the button now checked?
        boolean checked = ((RadioButton) view).isChecked();
    
        // Check which radio button was clicked
        switch(view.getId()) {
            case R.id.radio_pirates:
                if (checked)
                    // Pirates are the best
                break;
            case R.id.radio_ninjas:
                if (checked)
                    // Ninjas rule
                break;
        }
    }


    J'ai donc créé un nouveau projet plus simple que ce que je voulais faire en java pour tester :

    package com.example.trainning;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.RadioButton;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
    
        TextView Resultat;
    
        EditText Quantité_pourcent;
        EditText Quantité_gr;
        EditText Quantité_totale;
    
        Button Button_Calculer;
    
        float result_num;
        int num1, num2, num3;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Resultat = findViewById(R.id.Resultat);
    
            Quantité_pourcent = findViewById(R.id.Quantité_pourcent);
            Quantité_gr = findViewById(R.id.Quantité_gr);
            Quantité_totale = findViewById(R.id.Quantité_totale);
    
            Button_Calculer = findViewById(R.id.Button_Calculer);
    
            public void onRadioButtonClicked(View view) {
                boolean checked = ((RadioButton) view).isChecked();
    
                switch(view.getId()) {
                    case R.id.Button_pourcent:
                        if (checked)
                            Button_Calculer.setOnClickListener(new View.OnClickListener(){
                                @Override
                                public void onClick(View v) {
                                    num1 = Integer.parseInt(Quantité_pourcent.getText().toString());
                                    num3 = Integer.parseInt(Quantité_totale.getText().toString());
                                    result_num = (num1 * num3) / 100;
                                    Resultat.setText(String.valueOf(result_num));
    
                                }
                            });
                        break;
    
                    case R.id.Button_gr:
                          if (checked)
                              Button_Calculer.setOnClickListener(new View.OnClickListener(){
                                  @Override
                                  public void onClick(View v) {
                                      num2 = Integer.parseInt(Quantité_gr.getText().toString());
    
                                      result_num = num2;
                                      Resultat.setText(String.valueOf(result_num));
    
                                  }
                              });
                          break;
                }
    
            }
        }
    }
    


    J'ai un problème avec la ligne 38,39 et 41, une idée ? il ne veut pas de
    (View view)
    0
    1. dachiasse Messages postés 1932 Statut Membre 153
       
      En analysant rapidement : https://stackoverflow.com/questions/52230082/onradiobuttonclicked-method-not-working-for-radio-button-implemented-by-oncre je vois que les fonctions
      onCreate
      et
      onRadioButtonClicked
      sont séparées. Dans ton code,
      onCreate
      s'ouvre bien ligne 27 mais se ferme avec l'accolade fermante de la ligne 72.

      Retape ton code. Quand tu ouvres un symbole ouvrant et fermant, ferme de suite le symbole et écris le code entre. Dans le lien, à my code, l'accolade fermante de la fonction
      onCreate
      est au-dessus de :
      public void onRadioButtonClicked(View view) {
      0
    2. dachiasse Messages postés 1932 Statut Membre 153 > dachiasse Messages postés 1932 Statut Membre
       
      Je suis en train de prendre des notes sur : https://developer.android.com/training/basics/firstapp/starting-activity?hl=en#RespondToButton et j'ai lu ceci :
      You might see an error because Android Studio cannot resolve the View class used as the method argument. To clear the error, click the View declaration, place your cursor on it, and then press Alt+Enter, or Option+Enter on a Mac, to perform a Quick Fix. If a menu appears, select Import class.
      0
    3. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      View view
      est résolut.

      Ca fonctionne. Par contre si je me trompe et coche le radioButton % et indique une quantité en gr. ou inversement l'appli ce ferme.
      0
    4. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Je viens de comprendre. Il faudrait que tu vérifies le fil conducteur de l’application. Soit en utilisant un débogueur (debugger), soit en plaçant judicieusement des
      println("le texte que tu veux")
      .
      0
    5. Adeline_CCM > dachiasse Messages postés 1932 Statut Membre
       
      Ce serait bien qu'un message d'erreur s'affiche. Il faut que je trouve dans quelle partie l'introduire sans que ça fasse planter le reste.
      0
  14. Adeline_ccm
     
    Pour le coup c'est toi qui m'a perdue, lol.

    J'ai intégré les
    EditText
    et les
    TextView
    dans un
    GridLayout
    . Parce que dans le futur j'espère pouvoir permettre l'ajout de lignes en cliquant sur un bouton. Mais ça c'est si un jour je comprends le système de listes et des tableaux...

    Par contre, lorsque je lance l'appli sur un Pixel 4XL j'ai un espace vide sur la droite, saurais-tu comment je peux obliger les
    EditText
    de la deuxième colonne à s'étirer en fonction de la taille de l'écran du téléphone ?

    Pour revenir sur iText pourquoi dis tu que tu aimes bien le paragraphe qui le concerne sur l'exemple ? https://www.vogella.com/tutorials/JavaPDF/article.html
    0
    1. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Pour revenir sur iText pourquoi dis tu que tu aimes bien le paragraphe qui le concerne sur l'exemple ?
      Je parle de ce passage : "The smallest text unit is a "Chunk" which is a String with a pre-defined font. A "Phrase" combines several Chunks and allows to define line spacing. "Paragraph" is a subclass of "Phrase" and allows to define more layout attributes, e.g. margins. The class "Anchor" is a subclass of "Paragraph" and serves as the basis for hyperlinks in the generated PDF."
      C'est juste que je trouve ce passage tellement fluide et simple à comprendre, et l'article m'a l'air bien présenté. Je sais pas quoi dire de plus.

      Pour ton programme, s'il fonctionne et qu'il fait ce que tu souhaites, les seules améliorations que je vois sont cosmétiques, mais, ça, c'est toi qui le gères.
      0
    2. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      J'ai pas trouvé pour générer les pdf. Et l'exemple du lien c'est pour eclipse.
      0
    3. dachiasse Messages postés 1932 Statut Membre 153 > Adeline_ccm
       
      Il faut qu'on soit sur la même longueur d'onde. Pourquoi générer un PDF dans Android Studio ? Ça n'a pas de sens.
      Un PDF c'est simplement un fichier lisible non-modifiable par défaut contrairement à un document Word par exemple.
      Si ton objectif est d'avoir un PDF pour bien présenter ta liste d'ingrédients et leurs quantités, il te faut créer un patron ou un template en anglais qui sera une base et ton programme selon les ingrédients va remplir les champs du patron.
      0
    4. Adeline_ccm > dachiasse Messages postés 1932 Statut Membre
       
      Oui c'est pour copier les données saisies des editText et textview pour pouvoir imprimer sur une feuille A4.
      0
  15. Adeline_ccm
     
    Appli terminée.
    Merci de m'avoir aidée.
    0