web-dev-qa-db-fra.com

Sur Android, comment changez-vous d'activités par programme?

Il semble que chaque exemple de basculement entre les activités que je puisse trouver implique la création d'une intention et le passage dans le contexte d'une vue via un onclicklisten associé à un bouton.

Mais que se passe-t-il si vous décidez simplement de changer d'activité? Dans mon cas, une valeur de préférence est à l'origine d'un commutateur d'activité.

Comment créer une intention qui peut provoquer un commutateur d'activité sans OnClickListener associé?

30
dicroce

Cela devrait le faire pour vous:

Intent myIntent = new Intent(this, MyActivityName.class);
startActivity(myIntent);

Vous pouvez appeler de n'importe où dans votre activité actuelle.

67
Chris Thompson

Cela dépend où vous voulez commencer la nouvelle activité dans le code. Vous devez avoir accès à une référence de contexte pour commencer une nouvelle activité (par exemple: onPostExecute en AsyncTask). S'il vous plaît jeter un oeil à this

Même si c'est fondamentalement ceci.

 Intent myIntent = new Intent(this, ActivityName.class);
 startActivity(myIntent);

Cela peut être quelque chose comme ça aussi 

Intent myIntent = new Intent(context, ActivityName.class);
context.startActivity(myIntent);
8
diyoda_

J'ai la version la plus courte

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));
5
Xar E Ahmer

Utilisez PreferenceChangeListener :)

2
Konstantin Burov

quand tu veux changer d'activité. vous pouvez appeler ces codes.

Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);

Vous pouvez écrire ce code dans PreferenceChangeListener.

2
Srinivas
startActivity (new Intent (Thisactivity.this, Nextactivity.class));

N'oubliez pas d'ajouter une activité à votre manifeste

<Activity Android:name=".NextActivity>
1
Yamikani Sita

Tout d'abord, vous devez créer une interface utilisateur pour un bouton à l'aide du fichier de présentation intro_activity_1.XML. Après cela, définissez l'ID du groupe de boutons sous Android: id = "@ + id/button"

Exemple:

intro_activity_1.xml

<Button    Android:id="@+id/button"    
Android:layout_width="wrap_content"    
Android:layout_height="wrap_content"    
Android:layout_weight="1"    
Android:background="@Android:color/transparent"    
Android:text="NEXT" />

Modifiez maintenant votre classe Java de première activité. Dans cet exemple, nous modifions le fichier Java de IntroActivity1.Java. 

Exemple: 

IntroActivité1.Java

//header, import and package data


public class IntroActivity1 extends AppCompatActivity {


    Button next_btn;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro_activity_1); 

           next_btn=(Button)findViewById(R.id.button);//button class

           next_btn.setOnClickListener(new View.OnClickListener(){
   public void onClick(View arg0){
       //Start new activity class
              Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class);
             startActivity(myIntent);
      }
  });
}

Pour plus de détails sur le changeur d'activité, visitez: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-Android.html

1
Ganesh Garad

Vous pouvez créer intent dans l'activité principale comme ceci

Intent intent = new Intent(FirstActivity.this, second.class);
startActivity(intent);

Si vous attendez le résultat de la seconde, vous devez utiliser

StartActivityforresult(intent,request code).

Le code de demande peut être n'importe quelle integer.

1
Rakesh Gondaliya