Crée un boutton appuie long java

Résolu/Fermé
fares161121 Messages postés 12 Date d'inscription samedi 20 novembre 2021 Statut Membre Dernière intervention 9 juin 2022 - Modifié le 25 avril 2022 à 14:44
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 - 28 avril 2022 à 09:04
Bonjour, je début en java et sur Android studio j'aimerais savoir comment on créent un bouton qui prend en compte un appuie long, voici un code qui marche simplement pour l'appuie court.

Merci a vous

package com.example.application;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    public void displayMsg(String str){
        Toast.makeText(this, "Bouton Cliqué", Toast.LENGTH_SHORT).show();
    }

    public void displayMsg2(String str){
        Toast.makeText(this, "Bouton Appuyé", Toast.LENGTH_SHORT).show();
    }

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

        Button bt1 = findViewById(R.id.bt1);
        bt1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                displayMsg2("bt1");
            }
        });

        Button bt2 = findViewById(R.id.bt2);
        bt2.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.bt2)
            displayMsg("bt2");
    }

}
A voir également:

6 réponses

choubaka Messages postés 39410 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 janvier 2025 2 104
25 avril 2022 à 13:25
0
fares161121 Messages postés 12 Date d'inscription samedi 20 novembre 2021 Statut Membre Dernière intervention 9 juin 2022
25 avril 2022 à 13:58
Bonjour,

Merci pour la réponse mais je n'arrive pas a l'implémenter dans le code. Pourrais tu m'aider
0
choubaka Messages postés 39410 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 janvier 2025 2 104
25 avril 2022 à 14:03
0
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 3 913
26 avril 2022 à 12:59
Hello,

C'est plutôt celle-ci qui est à utiliser sur un Bouton
bouton.setOnLongClickListener(new View.OnLongClickListener(){
    public boolean onLongClick(View v) {
        Toast.makeText(context, "Salut mon appui long", Toast.LENGTH_SHORT).show();
        return true;
    } 
0
fares161121 Messages postés 12 Date d'inscription samedi 20 novembre 2021 Statut Membre Dernière intervention 9 juin 2022
26 avril 2022 à 13:47
Merci beaucoup pour ton aide mais j'ai essayer de l'implémenter mais ca me met que des erreurs tu pourrais me guider stp ? mon code initial est un peu plus haut
0
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 3 913
26 avril 2022 à 14:12
et tu as quoi comme erreur ?
0
fares161121 Messages postés 12 Date d'inscription samedi 20 novembre 2021 Statut Membre Dernière intervention 9 juin 2022
Modifié le 26 avril 2022 à 14:50
J'ai tout d'abord fait ca dans mon code :

package com.example.testbouton;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

// public void displayMsg(String str){
// Toast.makeText(this, "Bouton Appuyer", Toast.LENGTH_SHORT).show();
// }

public void displayMsg2(String str){
Toast.makeText(this, "Bouton Cliquer", Toast.LENGTH_SHORT).show();
}
public boolean displayMsg(String str) {
Toast.makeText(this , "Appuie Long", Toast.LENGTH_SHORT).show();
return true;
}

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

Button bt2 = findViewById(R.id.bt2);
bt2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
displayMsg("bt2");
}
});

Button bt1 = findViewById(R.id.bt1);
bt2.setOnLongClickListener(new View.OnLongClickListener(){
@Override
public boolean onLongClick(View v) {
if (v.getId() == R.id.bt1)
displayMsg2("bt1");
return true;
}
});

}

code d'erreurs sont :
'}' expected
0
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 3 913
26 avril 2022 à 15:47

if (v.getId() == R.id.bt1)
displayMsg2("bt1");
return true;
}

Il manque effectivement une accolade après le 'if'. ça, tu devrais le voir sans faire appel au forum
:P

Et tu feras attention, tu as mis le long click sur bt2...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fares161121 Messages postés 12 Date d'inscription samedi 20 novembre 2021 Statut Membre Dernière intervention 9 juin 2022
Modifié le 26 avril 2022 à 16:22
Merci vraiment pour t'es réponses mais j'ai encore des problème d'accolades :)

voici mon code :

package com.example.testbouton;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    // public void displayMsg(String str){
    //   Toast.makeText(this, "Bouton Appuyer", Toast.LENGTH_SHORT).show();
    // }

    public void displayMsg2(String str) {
        Toast.makeText(this, "Bouton Cliquer", Toast.LENGTH_SHORT).show();
    }

    public boolean displayMsg(String str) {
        Toast.makeText(this, "Appuie Long", Toast.LENGTH_SHORT).show();
        return true;
    }

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

        Button bt2 = findViewById(R.id.bt2);
        bt2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                displayMsg("bt2");
            }
        });

        Button bt1 = findViewById(R.id.bt1);
        bt1.setOnLongClickListener(new View.OnLongClickListener(){
            @Override
            public boolean onLongClick(View v) {
                if { (v.getId() == R.id.bt1)
                    displayMsg2("bt1");
                    return true;
                }
            }
        });
    }
  

voici les erreurs :

'(' expected 40
';' expected 40
'}' expected 46

Désoler et vraiment merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.
0
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 3 913
26 avril 2022 à 16:24
Apprends à bien indenter ton code, tu verras tout de suite où est le souci.
Voici la correction:
Button bt1 = findViewById(R.id.bt1);
bt1.setOnLongClickListener(new View.OnLongClickListener(){
    @Override
    public boolean onLongClick(View v) {
        if (v.getId() == R.id.bt1) {
            displayMsg2("bt1");
        }
        return true;
    }
});
0
BunoCS Messages postés 15500 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 janvier 2025 3 913
28 avril 2022 à 09:04
Bon, j'imagine que le problème est réglé ?
Si tel est le cas, peut-on passer ce sujet en "résolu" ?
0