我对Android很新,只是开始了解如何开发简单的应用程序(AndroidStudio
,Ubuntu 14.04
,LG G3)。从主要活动开始,我想在this solution之后开始另一个活动(即,显示用户可以进行输入的不同屏幕)。在文件MainActivity.java
中,我有以下方法:
@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 :(得分:0)
在您的其他活动中使用与home相同的主题。像这样
<activity
android:name=".SecondActivity"
android:label="@string/second"
android:theme="@style/AppTheme.NoActionBar" >
</activity>