Créer une appli android [Résolu]

Signaler
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
-
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
-
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

Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145
Hello,

Qu'est-ce qui te bloques exactement ? Tu as l'algorithme que tu nous as écrit, maintenant, il faut le transcrire en Kotlin
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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.
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

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 :-/
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Voici la doc de Kotlin : https://kotlinlang.org/
et la doc Android : https://developer.android.com/docs
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

C'est un truc comme ça qu'il faut que je fasse ?
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Ah ok ! Déjà ça m'aide beaucoup.
Merci.
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85
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.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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...
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85
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.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

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 ;)
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

En tout cas c'est bien compliqué. Quand Google dit que c'est à la portée de tout le monde de développer une appli c'est moyennement vrai. Certes, ils fournissent les outils mais les reste est laborieux quand on connais pas.
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Bien sûr, il faut un minimum de connaissance... c'est comme tout : la cuisine, le vélo, le bricolage, etc. Au début, ce n'est pas facile mais après quelques temps, on s'y fait bien ;)
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

Euh... j'arrive mieux a bricoler qu'à coder lol.
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Je pense que le problème est moins dans la difficulté d'apprentissage que dans les outils à utiliser. Concrètement, si on veut créer un logiciel pour PC, on peut utiliser le langage Python 3 et le module Tkinter pour l'interface graphique. Si on connaît Python, on peut utiliser tkinter. pour une app mobile, on prend Kotlin pour les calculs de l'app, et XML pour l'interface graphique, 2 langages totalement différents, le premier de programmation, le deuxième de balisage.
Hier, j'ai fait quelques menues recherches sur les pré-requis de Kotlin. Ça provenait de tutorialspoint, pas le site officiel, qui avait mis Java en pré-requis, et pour XML, ils avaient mis HTML et Javascript. En admettant qu'ils aient raison, pour faire un logiciel PC : Python et c'est tout (ou un autre langage). Pour faire une app mobile : Kotlin + XML (pré-requis : Java, HTML, JS). Bien que je suis d'accord avec Bruno, on peut apprendre Kotlin sans Java en amont. Je m'étais fait cette remarque car j'ai eu un mal fou à trouver la fonction qui demande à l'utilisateur de taper au clavier. C'est readLine() qui est une fonction de Java.

Donc, on peut commencer "simple" avec un langage davantage pour PC pour avoir une base correcte. Ou "compliqué", en apprenant différentes technologies. Et comme qui peut le plus peut le moins...
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

ç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é
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85
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
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Je comprends pas valeur = 0. La valeur de quelle donné ? Quantité_totale ?
Si quantité_totale = 0 alors ne rien faire sinon calculer ?
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

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é.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

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 ?
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Salut,

C'est très bien que tu voies tes erreurs. C'est normal d'en faire et c'est le processus normal de progression. On essaye, ça rate, on modifie un élément, on réessaye, ça rate mais, c'est mieux ou c'est pire, on réadapte, et ainsi de suite jusqu'à ce qu'on obtienne satisfaction.

En revanche, tu dois être plus rigoureuse quant à l'utilisation des termes. Quand tu parles d'algorithme qui va additionner la liste puis de "l'histoire" de RETOURNER, tu parles, en fait, d'une fonction. Une fonction fait partie des divers éléments que composent un algorithme.

Tu en es où de l'apprentissage de Kotlin ? Je n'ai pas vérifié, mais, c'est quasiment sûr qu'il existe une fonction qui calcule le cumul des éléments d'une liste. N'hésite pas à utiliser ton pseudo-code et Kotlin en parallèle pour écrire ton algorithme.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

J'ai pas fait kotlin encore. J'ai fait l'autre lien qui parle des algorithmes.
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

D’accord. Tu devrais quand même commencer Kotlin en parallèle. Ça va t’aider pour progresser mieux et plus rapidement.
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.
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

J'utilise kotlin playground et sauvegarde dans Microsoft Visual Studio le morceaux de codes qui fonctionnent.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
> Adeline_CCM
fun main (){
    val Tableau: IntArray = intArrayOf(1,2,3)
    var Somme: Int = Tableau.sum()
    print("$Somme")
    }


Là, il fait juste l'addition des lignes 1, 2 et 3. Mais je ne vois pas le lien avec les editText (A3 à I3, dans mon cas) qui vont contenir les chiffres à additionner.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Pareil pour ça, comment je fais pour lui dire qu'il faut qu'il écrive dans les editText A3 à I3 ?

val Coche_pourcent = true
val Coche_gr = false
var Quantité_totale = 86.0
var Quantité_pourcent = 35.0
var Quantité_gr = 30.0
var Resultat_quantité = 12

fun main (){
    if (Coche_pourcent == true) {
    var resultat_pourcent = ((Quantité_pourcent*Quantité_totale)/100)
    print ("$resultat_pourcent")} else {
    print ("$Quantité_gr")
       }
    }
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Salut,
De ce que j'ai compris, pour créer une application, on va écrire du xml pour la mise en forme des widgets.
Les widgets sont les différents éléments qui peuvent être visibles dans l'application pour l'utilisateur. Un bouton, une portion de texte, etc. sont des widgets.
Kotlin est un langage de programmation qui permet d'automatiser des tâches. Pour faire le lien entre XML et Kotlin, on utilise la classe R et l'identifiant xml du widget en question.
Imaginons que tu as créé un widget liste en xml avec l'identifiant :
id_liste
, et chaque ligne s'identifie comme
id_ligne_N
avec N l'indice de ligne commençant à 0.
Avec la classe R, on aurait quelque chose comme :
inscrire avec la classe R la valeur de l'élément X de la liste de Kotlin dans id_ligneX

Donc,
R.id_ligne0 = liste[0], ..., R.id_ligne[n] = liste[n]

Maintenant, tu arrives à un niveau que je n'ai pas atteint. Il me sera difficile de t'aider sans effort de ta part. Je n'hésiterai pas à me renseigner pour t'aider.
C'est en anglais, c'est beaucoup d'informations, mais, tu ne pourras pas éviter de lire les guides et tutos d'Android Studio : https://developer.android.com/studio
Bon courage pour la suite, et lorsque je le pourrai je t'aiderai volontiers.
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

OK, merci pour ta patience. J'essai de chercher de mon côté aussi. J'ai commencé le lien avec les exercices en Java peut être que j'y trouverai aussi des réponses. En tout cas, c'est plus attrayant et surtout plus clair que ce que propose kotlinlang.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

ah j'ai trouvé que
Int
est un nombre entier.
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85
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
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

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.
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 > 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.
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

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...
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 > Adeline_CCM
C’est cool ça. Il doit bien y avoir des membres qui seraient intéressés dans la programmation. Tu leur en as parlé ?
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

J'ai fait partie des gens qui ont posé la question si ça existait et ... pas de réponses, lol.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Je me demande si la réponse à ma question concernant le lien avec les editText ne ce trouve pas ici, mais je ne comprends pas le codage qui y est fait :

https://developer.android.com/training/basics/firstapp/starting-activity
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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)
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Je n'ai pas regardé la vidéo entièrement. Le gars met le curseur de la souris à la première ligne du code, il suit le code avec le curseur pour arriver à la fin environ 3 min 30 plus tard. Il paraphrase, ça ne sert à rien, on sait lire.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

Hello,

J'ai trouvé ça, je vais tester.

https://www.vogella.com/tutorials/JavaPDF/article.html
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Salut,

Je n'ai pas lu en entier, mais, ça a l'air propre. J'aime beaucoup le paragraphe sur l'explication de la structure de iText.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021

Est ce que tu peux m'expliquer comment on doit lire ce genre de page ? J'ai compris le paragraphe xml mais pas les autres.

https://developer.android.com/reference/android/widget/GridView
Messages postés
1009
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
21 février 2021
85 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

La page est une référence, une documentation concernant la classe
GridView
. On lit tout au début, mais, on pioche surtout.

Comme on construit d'abord l'objet de la classe, en premier lieu, je lirais la partie Public constructors. Il ne faut pas hésiter à cliquer de lien en lien et surtout faire des essais avec un code simple en provoquant des erreurs.

Pour XML, les constantes, et les méthodes, on a toutes celles qui font parties de
GridView
, celles qui sont héritées, par exemple
ACCESSIBILITY_LIVE_REGION_ASSERTIVE
de
View
. Pour mieux comprendre l'héritage : https://www.tutorialspoint.com/java/java_inheritance.htm

En quelques minutes, c'est pas simple à expliquer. Mais, pars d'abord du constructeur, pioche ce dont tu as besoin. La programmation se prépare en amont. Tu as besoin d'une liste, tu vas chercher les classes de liste, mais, il y aura certaines de ces classes qui ne conviendront pas, tu ne les sélectionnes pas. Dans les classes utiles, tu n'auras pas forcément besoin de tout. Tu façonnes ton projet avec des briques indépendantes les unes des autres mais, qui, reliées entre elles vont être à la conception du programme.
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

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
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Pour l'appareil qui a planté (Nokia Nokia 1, 480x854, Android 8.1 (SDK 27), RAM :1 024 Mo)

J'ai ça comme erreur, ça te dis quelque chose ? (On ce croirait dans Person of interest) :

java.lang.NoClassDefFoundError: aewt

FATAL EXCEPTION: Firebase-Messaging-Intent-Handle
Process: com.google.android.youtube, PID: 16110
java.lang.NoClassDefFoundError: aewt
at aewu.b(PG:1)
at duc.a(PG:230)
at duc.get(PG:247)
at aevw.b(PG:1)
at dud.al(PG:5)
at dud.aw(PG:4)
at dud.bg(PG:8)
at duc.a(PG:232)
at duc.get(PG:247)
at afke.a(PG:1)
at aeri.b(PG:1)
at dud.fv(PG:4)
at duc.c(PG:269)
at duc.get(PG:247)
at amfk.a(PG:1)
at eiu.K(PG:5)
at dud.fV(PG:7)
at duc.d(PG:334)
at duc.get(PG:247)
at com.google.android.apps.youtube.app.common.notification.FcmMessageListenerService.b(PG:1)
at com.google.firebase.messaging.FirebaseMessagingService.g(PG:53)
at avgp.run(Unknown Source:7)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at usj.run(PG:2)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ExceptionInInitializerError
at aewu.b(PG:1)
at duc.a(PG:230)
at duc.get(PG:247)
at aevw.b(PG:1)
at dud.al(PG:5)
at duc.a(PG:174)
at duc.get(PG:247)
at aeqv.a(PG:6)
at acpw.b(PG:2)
at dxe.a(PG:8)
at dus.onCreate(PG:41)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5767)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1680)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)
Caused by: dkp: libelements.so
at dks.c(PG:52)
at dkq.a(PG:6)
at duv.a(Unknown Source:8)
at avlz.f(PG:8)
at avlz.e(PG:5)
at avlz.a(PG:1)
at wqq.a(PG:1)
at aewt.<clinit>(PG:1)
... 21 more
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Désolé, étant donné que l'app a été signée, les logs ne sont exploitables qu'avec le fichier de mapping de Proguard
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

Ou la la, c'est trop technique pour moi. Est ce que ça a un rapport avec le fichier de désopcurcissement ? La console Google play me recommande de l'ajouter mais je ne sais pas du tout ce que c'est.
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021
3 145 >
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Oui, c'est ça, c'est de l'obfuscation par ProGuard. Plus d'infos sur le guide officiel, et pour la partie qui t'intéresse ici c'est plutôt ce chapitre
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021
>
Messages postés
14974
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 février 2021

Salut !

J'ai enfin trouver comment il fallait faire pour l'impression de pdf. Mais, je voulais savoir s'il était possible, dans la partie canvas, de reproduire tous les editText et textView d'un seul coup, comme lorsque l'ont fait un screenshot ?
Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Messages postés
64
Date d'inscription
dimanche 6 décembre 2020
Statut
Membre
Dernière intervention
10 février 2021

Appli terminée.
Merci de m'avoir aidée.