J'ai un fragment de première classe qui s'étend, et une deuxième classe qui étend une activité.
Mon fragment fonctionne bien et mon code pour l'intention dans le fragment est le suivant:
ImageButton button= (ImageButton) getView().findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(MyFragment.this, MyClass.class);
MyFragment.this.startActivity(myIntent); }
});
Le code de ma classe MyClass est:
public class MyClass extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The activity is being created.
}
@Override
protected void onStart() {
super.onStart();
setContentView(R.layout.MyClass);
}
}
L'erreur est:
Gradle: cannot find symbol constructor Intent(com.xxxx.xxxx.MyFragment,Java.lang.Class<com.xxxx.xxxx.MyClass>)
Je ne sais pas où je me suis trompé.
Utilisation
Intent myIntent = new Intent(v.getContext(), MyClass.class);
ou
Intent myIntent = new Intent(MyFragment.this.getActivity(), MyClass.class);
pour commencer une nouvelle activité. En effet, vous devrez passer le contexte Application ou composant en tant que premier paramètre au constructeur Intent lorsque vous créez une intention pour un composant spécifique de votre application.
Ou vous pouvez simplement commencer l'activité comme indiqué ci-dessous;
startActivity( new Intent(currentactivity.this, Tostartactivity.class));
Vous pouvez utiliser ceci:
Intent intent = new Intent(getApplicationContext(), ClassName.class);
Même erreur venait avec mon code dans l'activité mais pas dans le fragment. Affichage d'une erreur de constructeur pour une ligne différente, par exemple new Intent (From.this, To.class) et new ArrayList <> etc.
Correction de la fermeture d'Android Studio, du déplacement du référentiel vers un autre emplacement et de la réouverture du projet. Correction du problème.
Cela ressemble à un problème de construction d'Android Studio.
Vous ne pouvez pas utiliser le Intent's Context
pour créer une intention. Donc, vous devez utiliser votre Fragment's
Parent Activity
Context
Intent intent = new Intent(getActivity(),MyClass.class);
Utiliser
.getActivity()
résout ce problème:
Pour par exemple.
Intent i= new Intent(MainActivity.this.getActivity(), Next.class);
startActivity(i);
J'espère que cela t'aides.
À votre santé.