2015-08-14 114 views
0

這是代碼:程序崩潰的切換從項目菜單活動時

SudokuMain.java

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int itemId = item.getItemId(); 
    switch (itemId) { 
     case R.id.action_newGame: 
      ((SudokuBoardView) findViewById(R.id.vsudoku_board)).newGame(); 
      return true; 
     case R.id.action_test: 
      Intent intent = new Intent(SudokuMain.this, PrimoRisultato.class); 
      startActivityForResult(intent,0); 
      finish(); 
     /* if (LinkMatrix.Test()) { 
       Toast.makeText(this, "Test Successfully", Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(this, "Test Failed", Toast.LENGTH_LONG).show(); 
      }*/ 
      return true; 
    } 
    return true; 
} 

AndroidManifest.xml中

<activity 
     android:name=".SudokuMain" 
     android:configChanges="orientation|keyboardHidden" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:theme="@style/AppThemeActionBar" > 
    </activity> 
    <activity 
     android:name=".PrimoRisultato" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:configChanges="orientation|keyboardHidden" > 
    </activity> 

當我點擊按鈕來切換活動的應用程式崩潰。 我看到了幾個指導/代碼,但它不起作用。

好吧,所以我認爲問題是在SudokiMain我使用主題與操作欄,但在PrimoRisultato我使用主題沒有操作欄。 這是堆棧跟蹤(紅色文本):

08-18 14:41:27.602 7471-7471/com.example.face_offbrains E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.face_offbrains, PID: 7471 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.face_offbrains/com.example.face_offbrains.PrimoRisultato}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 

有沒有解決「您需要使用Theme.AppCompat主題(或後代)與本次活動」沒有動作條的方法嗎?

即使把Theme.AppCompact這樣的應用程序崩潰。

<activity 
     android:name=".PrimoRisultato" 
     android:label="@string/app_name" 
     android:screenOrientation="landscape" 
     android:configChanges="orientation|keyboardHidden" 
     android:theme="@style/AppThemeActionBar"> 
    </activity> 

和menu.xlm

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:id="@+id/action_newGame" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/action_newGame"/> 
<item 
    android:id="@+id/action_test" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/action_test"/> 

+3

您可以發佈您的堆棧跟蹤? – Prudhvi

+0

如果沒有你發佈你的堆棧跟蹤,我們無法知道,但我的猜測是你沒有聲明'PrimoRisultato.class'是你的清單中的一個活動。 –

+0

我沒有在manifest中發佈PrimoRisultato的聲明 – shawk

回答

0

如果你不需要通過活動結果使用此代碼:

Intent intent = new Intent(SudokuMain.this, PrimoRisultato.class); 
      startActivity(intent); 
      finish(); 
+0

再次崩潰.... – shawk

+0

PrimoRisultato.class不是和清單中的活動。 – Santiago

+0

甚至將PrimoRisultato.class放入應用程序崩潰中 – shawk