Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modifier un TextView Android Studio

5 décembre 2017 à 20:36:05

Bonsoir,

J'ai commencé la programation sur Android et Java et là j'ai un petit soucis ^^

J'ai fais une appli composé de 10 boutons et un d'un double, chaque bouton modifie à sa manière la valeure du double. Il y a enfin un String qui prend la valeure de ce double afin de l'afficher à l'écran. Cependant, bien que j'appuie sur un des boutons, la valeure du String finale (affiché à l'écran), ne change pas :/

Voici mon code:

package com.app.wonghalves.wonghalvescardcounter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;

import static com.app.wonghalves.wonghalvescardcounter.R.layout.activity_main;

public class MainActivity extends AppCompatActivity {

    @Override


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(activity_main);
        Button b1 = (Button) findViewById(R.id.button13);
        Button b2 = (Button) findViewById(R.id.button14);
        Button b3 = (Button) findViewById(R.id.button15);
        Button b4 = (Button) findViewById(R.id.button16);
        Button b5 = (Button) findViewById(R.id.button17);
        Button b6 = (Button) findViewById(R.id.button18);
        Button b7 = (Button) findViewById(R.id.button19);
        Button b8 = (Button) findViewById(R.id.button20);
        Button b9 = (Button) findViewById(R.id.button21);
        Button b10 = (Button) findViewById(R.id.button22);
        Button b11 = (Button) findViewById(R.id.button23);
        final TextView recup = (TextView) findViewById(R.id.textView);
        final double[] count = {0};
        String[] sCount = {count[0] + ""};



        b1.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0]--;
            }
        });
        b2.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0] = count[0] + 0.5;
            }
        });
        b3.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0]++;
            }
        });
        b4.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0]++;
            }
        });
        b5.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0] = count[0] + 1.5;
            }
        });
        b6.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0]++;
            }
        });
        b7.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0] = count[0] + 0.5;
            }
        });
        b9.setOnClickListener(new View.OnClickListener()
        {


            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0] = count[0] - 0.5;
            }
        });
        b10.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View view) {

            }

            public void onClick()
            {
                count[0]--;

            }
        });
        b11.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View view) {

            }

            public void onClick() {
                count[0] = 0;

            }
        });
        recup.setText(count[0]+"");


    }
}

Donc au départ il m'affiche "0.0" comme valeure, ce qui est normale ^^.

Cependant, si j'appuie sur le bouton b7 par exemple, ce string devrait changer en "0.5", ce qui n'est pas le cas :(

Pouvez vous m'éclairer svp ?? ^^

  • Partager sur Facebook
  • Partager sur Twitter
6 décembre 2017 à 5:14:16

Déjà tu vires toutes les fonctions onClick doublon que tu as crée et tu conserve la fonction de base.

Et ensuite c'est bien de modifier la valeur de ton count mais ensuite il faut l'afficher avec : recup.setText(count[0]+""); à chaque fois que tu finis un onclick, parce que là la seule fois ou tu l'utilises c'est la première fois que ton programme est lancé, comme il n'est pas à l'intérieur des fonctions click il n'est pas appelé à chaque fois.

@Override
public void onClick(View view) {
 count[0] = .....
 recup.setText(...);
}

Et pourquoi utiliser un tableau de bouble si tu n'as qu'une seule valeur à gérer ? A moins que tu veuilles en gérer plusieurs par la suite ? Et même question pour ta variable sCount, elle ne te sers à rien pour l'instant.

  • Partager sur Facebook
  • Partager sur Twitter
The people who are crazy enough to think they can change the world, are the ones who do.
27 février 2021 à 4:50:06 - Message modéré pour le motif suivant : Message complètement hors sujet


27 février 2021 à 10:20:23

@JobNoh Bonjour, merci de ne pas déterrer d'ancien sujet.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter