2013-03-15 17 views
5

miałem libgdx program, który rozpoczyna się z następujących klas:Dlaczego pojawia się błąd "MojaAktywność nie jest klasą obejmującą?"

public class MyActivity extends AndroidApplication implements IActivityRequestHandler 

Musiałem mieć klasę Activity wykrywania rozmiaru ekranu przy użyciu Display (nie mogę zrobić w klasie AndroidApplication).

Więc dodałem następujące klasy jako mój wyrzutni Activity:

public class MyActivity1 extends Activity 

Więc w mojej nowej klasy MyActivity1 próbuję uruchomić moją starą klasę MyActivity:

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

Ale mam następujące zestawienie error: MyActivity nie jest klasą obejmującą

Manifes t jest następujące:

<activity android:name=".MyActivity1" 
    android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
</activity> 
<activity android:name=".MyActivity"/> 

Dlaczego pojawia się ten błąd?

+0

Dlaczego wywołujesz tę samą aktywność z samej siebie? – codeMagic

+0

Nie. Główną klasą jest MyActivity1, która powinna uruchamiać MyActivity – nms

Odpowiedz

19

Spróbuj z tym

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

Nowy Intent wymaga kontekst bieżącej działalności (Pierwsza param) oraz klasę którego chcesz initializate (drugi param).

+0

Ooops! Tak. Zignorowałem te same klasy w "Intent myIntent = new Intent". Dziękuję Ci! – nms

+0

Nie ma za co. =) – SolArabehety

+5

@ nms Możesz ponownie rozważyć konwencje nazewnictwa. Widzę, jak można je łatwo łączyć i to sprawia, że ​​myślę, że twoje nazwy zmiennych mogą być podobnie nazwane. To będzie powodować duże bóle głowy w przyszłości, jak widać. Będzie ci lepiej, jeśli spróbujesz, aby ich znaczenie bardziej odpowiadało ich obowiązkom – codeMagic

Powiązane problemy