2017-01-15 1 views
1

Ich erstelle eine persönliche Komponentenansicht und wenn wir darauf klicken, beginnt eine andere Aktivität. Da ist mein Manifest.Fehler: MainActivity ist keine umschließende Klasse

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="fr.freshkamekentrainement.skrt"> 
<application 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".Splash" 
     android:theme="@style/Splash" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".MainActivity" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation"/> 
    <activity android:name=".niveaux.LilUziVert_GrowUp" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation"/> 
</application></manifest> 

gibt es meine Absicht

public class Niveauview extends RelativeLayout { 
Intent intentNiveau; 

//Code 

@Override 
public void onFinishInflate() { 
    super.onFinishInflate(); 

    setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      intentNiveau = new Intent(MainActivity.this,LilUziVert_GrowUp.class); 
      startActivity(intentNiveau); 
     } 
    }); 
}} 

ich Fehler:

MainActity is not an enclosing class

Beachten Sie, dass NiveauView und MainActivity ist nicht im selben Paket (aber sie sind öffentlich). Woher kommt das Problem? Wenn ich new Intent(this,LilUziVert_GrowUp.class); versuche, habe ich auch einen Fehler.

Antwort

0

Sie können nur auf Foo.this zugreifen, wenn Sie in einer inneren Klasse von Foo sind. Andernfalls müssen Sie stattdessen eine Instanz von Foo übergeben. Im Fall einer View hat jede View eine Instanz eines Contexts, die Sie durch Aufruf von getContext() erhalten können. Also müssen Sie anrufen intentNiveau = new Intent(getContext(),LilUziVert_GrowUp.class);

+0

Danke, ich tat es, aber die Methode startActivity (intentNiveau) funktioniert nicht – 21Maskass

+0

Sie müssen auch getContext() aufrufen. StartActivity (intentNiveau); Und ich würde vorschlagen, Java ohne die Ablenkung von Android zu lernen, diese Frage zeigt nur, dass Sie wirklich nicht wissen, wie man darin programmiert. –

+0

Danke, ich bin neu in der Programmierung, ich lernte Java zuerst, aber wie Sie sehen, vermisse ich einige essentials. – 21Maskass

Verwandte Themen