Java 第二个活动的setContentView()上的应用程序崩溃
我有一个名为Java 第二个活动的setContentView()上的应用程序崩溃,java,android,android-activity,Java,Android,Android Activity,我有一个名为MainActivity的启动活动,它最终将启动另一个名为SearchResultsActivity的启动活动 它们都扩展了ActionBarActivity,第二个尚未编写,因为现在它只是一个存根,具有: @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.search_results); } 布局XML如下所示,只是一个白色背景的列表视图: <
MainActivity
的启动活动,它最终将启动另一个名为SearchResultsActivity
的启动活动
它们都扩展了ActionBarActivity
,第二个尚未编写,因为现在它只是一个存根,具有:
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.search_results);
}
布局XML如下所示,只是一个白色背景的列表视图
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/list_products"
android:layout_gravity="center_horizontal" />
</LinearLayout>
以下是清单摘录:
<activity
android:name="com.example.myapp.MainActivity"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Styled">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.myapp.SearchResultsActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Styled"
android:configChanges="orientation|keyboardHidden">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myapp.MainActivity" />
</activity>
我原以为布局可能有问题,但后来我决定将R.layout.search_results
替换为R.layout.home
,它与MainActivity
中使用的XML相同,因此应该可以工作。但它在同一条线上崩溃了
有没有关于是什么原因的想法?正如其他人所指出的,您的错误很可能出现在第二个活动的
onCreate
代码中。如果您阅读文档,您将看到他们以onCreate
开始活动,并立即回拨super.onCreate(…)
您的代码应如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //added this line
setContentView(R.layout.search_results);
}
如果您选择让IDE自动生成活动存根,它将始终在活动中调用super.onCreate。它初始化活动,有关详细说明,请参阅
如果这不能解决您的问题,并且您的第二个活动中有更多的代码,那么发布整个活动的代码可能会很有用。正如其他人所指出的,您的错误可能出现在第二个活动的
onCreate
代码中。如果您阅读文档,您将看到他们以onCreate
开始活动,并立即回拨super.onCreate(…)
您的代码应如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //added this line
setContentView(R.layout.search_results);
}
如果您选择让IDE自动生成活动存根,它将始终在活动中调用super.onCreate。它初始化活动,有关详细说明,请参阅
如果这不能解决您的问题,并且您的第二个活动中有更多的代码,那么发布整个活动的代码可能会很有用。可能是因为没有
super.onCreate(savedInstanceState)代码>介于OnCreate()
和setContentView()
之间?你有super.OnCreate(…)行吗?可能是因为没有super.OnCreate(savedInstanceState)在OnCreate()
和setContentView()
之间的代码>中?您有super.OnCreate(…)行吗?