2015-10-27 74 views
-3

我對android非常陌生,剛開始瞭解如何開發簡單的應用程序(AndroidStudioUbuntu 14.04,LG G3)。從主要活動開始,我想要開始另一個活動(即,在this solution之後顯示用戶可以進行一些輸入的不同屏幕)。在文件MainActivity.java我有以下方法:如何解決android'IllegalStateException'錯誤?

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.menu_add:   
      Intent myIntent = new Intent(MainActivity.this, NewEntryActivity.class); 
      MainActivity.this.startActivity(myIntent); 
      return true;   
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

而且NewEntryActivity.java定義如下文件:

package com.example.alexander.myapplication; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.Button; 
import android.widget.EditText; 

public class NewEntryActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_newentry); 

     final EditText editNewIsin = (EditText) findViewById(R.id.new_isin); 
     final EditText editNewPrice = (EditText) findViewById(R.id.new_price); 
     final EditText editNewNumber = (EditText) findViewById(R.id.new_number); 
     Button buttonNewOk = (Button) findViewById(R.id.new_ok); 
     Button buttonNewCancel = (Button) findViewById(R.id.new_cancel); 


    } 

} 

沒有錯誤指示該文件(一切似乎是正確定義)。當我開始我的手機上的應用程序,主要活動啓動時沒有問題,但是當我選擇菜單項,啓動其他活動的應用程式立即關閉,我看到了一個錯誤:

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

然而,這兩個活動源自AppCompatActivity。也許它指的是其他的東西(Manifest,layout.xml,...?),但是這從錯誤信息中是不清楚的。任何幫助這裏感謝...

這裏也是清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.alexander.myapplication" > 

    <application> 
     android:allowBackup="true" 
     android:icon="@mipmap/stoxx" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/Theme.AppCompat.Light.DarkActionBar" />  

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".NewEntryActivity" 
      android:label="@string/menu_add" 
     /> 

    </application> 

</manifest> 
+0

您在manifest中的活動的主題是什麼? – Fahim

+0

我不知道。我在哪裏可以看到?我可能沒有一個定義...? – Alex

+0

活動/應用程序標籤的清單文件 – Fahim

回答

0

只要使用相同主題的家在你的其他活動。像這樣

<activity 
     android:name=".SecondActivity" 
     android:label="@string/second" 
     android:theme="@style/AppTheme.NoActionBar" > 
    </activity> 
+0

我在'styles.xml'文件中只有'style name ='AppTheme''。但是,當我替換這個和清單文件中的條目時,我仍然像以前一樣得到相同的錯誤。 – Alex

+0

檢查更新後的答案。這對我工作,並親切接受這個答案,如果它的工作。謝謝 – Arslan

+0

我是否需要將這個'AppTheme.NoActionBar'僅僅添加到新的活動中,還是放在清單中的主應用程序中?我在styles.xml中定義了什麼?爲什麼我需要三個地方來定義主題?爲什麼該應用因爲主題而崩潰?這不僅僅是圖形的外觀?這些主題之間有什麼區別?我在哪裏可以得到我所有問題的答案? – Alex