web-dev-qa-db-fra.com

Android Intent Impossible de résoudre le constructeur

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é.

47
Pull

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.

117
ρяσѕρєя K

Ou vous pouvez simplement commencer l'activité comme indiqué ci-dessous;

startActivity( new Intent(currentactivity.this, Tostartactivity.class));
6
wanjiku

Vous pouvez utiliser ceci:

Intent intent = new Intent(getApplicationContext(), ClassName.class);
3
Aditya Mhamunkar

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.

0
gauravsngarg

Vous ne pouvez pas utiliser le Intent's Context pour créer une intention. Donc, vous devez utiliser votre Fragment'sParent ActivityContext

Intent intent = new Intent(getActivity(),MyClass.class);
0
Subbu

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é.

0
Crime_Master_GoGo