web-dev-qa-db-fra.com

Comment puis-je obtenir un bouton pour ouvrir une autre activité dans Android Studio?

Bonjour, je suis nouveau dans la programmation et j'utilise le Android Studio pour coder mon application Android. Je travaillais avec Eclipse mais j'essaie quelque chose de nouveau. J'ai ajouté un bouton au fichier my activity.XML et je ne parviens pas à le faire ouvrir mon autre activité. Est-ce que certains peuvent me dire, étape par étape, comment faire cela, s'il vous plaît?

21
BionicDroid

A. Assurez-vous que votre autre activité est déclarée dans le manifeste: 

<activity
    Android:name="MyOtherActivity"
    Android:label="@string/app_name">
</activity>

Toutes les activités doivent être déclarées dans manifest, même si elles ne sont pas affectées d'un filtre intent .


B. Dans votre MainActivity, faites quelque chose comme ça:

Button btn = (Button)findViewById(R.id.open_activity_button);    

btn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, MyOtherActivity.class));
        }
});
65
Gilad Haimov

Utiliser un OnClickListener

Dans la méthode onCreate() de votre instance Activity, vous devez d'abord rechercher votre Button par son id à l'aide de findViewById(), puis définir une OnClickListener pour votre bouton et implémenter la méthode onClick() afin qu'elle lance votre nouvelle Activity

Button yourButton = (Button) findViewById(R.id.your_buttons_id);

yourButton.setOnClickListener(new OnClickListener(){
    public void onClick(View v){                        
        startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
    }
});

C'est probablement la méthode préférée des développeurs. Cependant, il existe une alternative commune.

Utiliser onClick en XML

Sinon, vous pouvez utiliser le Android:onClick="yourMethodName" pour déclarer le nom de la méthode dans votre Activity qui est appelée lorsque vous cliquez sur votre Button, puis déclarer votre méthode comme ceci;

public void yourMethodName(View v){
    startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
}

De plus, n'oubliez pas de déclarer votre nouvelle Activity dans votre manifest.xml. J'espère que ça aide.

Références;

15
Rudi Kershaw

Si vous avez déclaré votre bouton dans le fichier XML comme ceci:

<Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="next activity"
        Android:onClick="goToActivity2"
        />

alors vous pouvez l'utiliser pour changer l'activité en le mettant dans le fichier Java:

public void goToActivity2 (View view){
    Intent intent = new Intent (this, Main2Activity.class);
    startActivity(intent);
}

Notez que ma deuxième activité s'appelle "Main2Activity"

7
daniftomas
Button T=(Button)findViewById(R.id.button_timer);
T.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i=new Intent(getApplicationContext(),YOURACTIVITY.class);
        startActivity(i);
    }
});
2
harveyslash

Appliquez les étapes suivantes:

  1. insérer une nouvelle mise en page xml dans la mise en page du dossier
  2. renommer window2
  3. ajoute un nouveau bouton et ajoute cette ligne: Android: onClick = "window2"

mainactivity.Java

public void openWindow2(View v) {
        //call window2
        setContentView(R.layout.window2);           
    }
}
1
BREI

Écrire du code sur un fichier XML.

<Button Android:width="wrap_content"
        Android:height="wrap_content"
        Android:id="@+id/button"
        Android:text="Click"/>

Écrire du code dans votre fichier Java

Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            startActivity(new Intent(getApplicationContext(),Secondclass.class));
           /* if you want to finish the first activity then just call
            finish(); */
        }
    });
1
Amol Gursali

public void onButtonClick (Afficher la vue)

startActivity (nouvelle intention (activité en cours, telle que, classe d'intention d'activité));

0
Mani kandan

J'ai fait la même chose que l'utilisateur9876226 a répondu. La seule différence est que je n'utilise généralement pas onClickListener. Au lieu de cela, j'écris ce qui suit dans le fichier XML: Android:onClick="open"

open est la fonction liée au bouton . Il suffit ensuite de créer la fonction open () dans votre classe d'activité. Lorsque vous cliquez sur le bouton, cette fonction sera appelée :) En outre, je pense que cette méthode est plus confortable que d’utiliser l’auditeur.

0
Matécsa Andrea

utilisez le code suivant pour qu'un bouton, dans Android Studio, ouvre une activité déjà existante. 

Button StartButton = (Button) findViewById(R.id.YOUR BUTTONS ID GOES HERE);

StartButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this, YOUR ACTIVITY'S ID GOES HERE.class));
    }
});
0
user9876226