Crée un boutton appuie long java

Résolu
fares161121 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   -
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 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
0
fares161121 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 919
 
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   Statut Membre Dernière intervention  
 
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 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 919
 
et tu as quoi comme erreur ?
0
fares161121 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
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 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 919
 

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   Statut Membre Dernière intervention  
 
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 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 919
 
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 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 919
 
Bon, j'imagine que le problème est réglé ?
Si tel est le cas, peut-on passer ce sujet en "résolu" ?
0