Android应用程序在新活动开始时关闭
我是android开发新手,在新的android活动页面上,我一直遇到Force Close的问题 我的结构是这样的: 主页->菜单页(工作正常)->新游戏屏幕(强制关闭) 对活动的呼吁:Android应用程序在新活动开始时关闭,android,manifest,forceclose,Android,Manifest,Forceclose,我是android开发新手,在新的android活动页面上,我一直遇到Force Close的问题 我的结构是这样的: 主页->菜单页(工作正常)->新游戏屏幕(强制关闭) 对活动的呼吁: public void btnNewGame_Click(View view) { Intent i = new Intent(this, NewGameScreen.class); startActivityForResult(i, ACTIVITY_CREATE); } 显示
public void btnNewGame_Click(View view)
{
Intent i = new Intent(this, NewGameScreen.class);
startActivityForResult(i, ACTIVITY_CREATE);
}
显示
<activity android:name=".NewGameScreen"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
错误:
03-05 20:16:57.375: E/AndroidRuntime(887): FATAL EXCEPTION: main
03-05 20:16:57.375: E/AndroidRuntime(887): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.helloandroid/com.example.helloandroid.NewGameScreen}: java.lang.RuntimeException: Your content must have a ExpandableListView whose id attribute is 'android.R.id.list'
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.os.Handler.dispatchMessage(Handler.java:99)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.os.Looper.loop(Looper.java:137)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread.main(ActivityThread.java:4424)
03-05 20:16:57.375: E/AndroidRuntime(887): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 20:16:57.375: E/AndroidRuntime(887): at java.lang.reflect.Method.invoke(Method.java:511)
03-05 20:16:57.375: E/AndroidRuntime(887): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-05 20:16:57.375: E/AndroidRuntime(887): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-05 20:16:57.375: E/AndroidRuntime(887): at dalvik.system.NativeStart.main(Native Method)
03-05 20:16:57.375: E/AndroidRuntime(887): Caused by: java.lang.RuntimeException: Your content must have a ExpandableListView whose id attribute is 'android.R.id.list'
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ExpandableListActivity.onContentChanged(ExpandableListActivity.java:222)
03-05 20:16:57.375: E/AndroidRuntime(887): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:254)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.Activity.setContentView(Activity.java:1835)
03-05 20:16:57.375: E/AndroidRuntime(887): at com.example.helloandroid.NewGameScreen.onCreate(NewGameScreen.java:22)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.Activity.performCreate(Activity.java:4465)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-05 20:16:57.375: E/AndroidRuntime(887): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
03-05 20:16:57.375: E/AndroidRuntime(887): ... 11 more
使用以下命令更改您的ExpandableListView id
android:id="@android:id/list"
如果您的类扩展了活动,则将其更改为
public class className extends ListActivity
您可以通过调用方法来获取ExpandableListView
ExpandableListView listView = getListView();
使用以下命令更改您的ExpandableListView id
android:id="@android:id/list"
如果您的类扩展了活动,则将其更改为
public class className extends ListActivity
您可以通过调用方法来获取ExpandableListView
ExpandableListView listView = getListView();
答案很简单,您只是忘记了将NewGameScreen活动的条目插入到AndroidManiFest.xml中,并在标记前的AndroidManiFest.xml文件的下面一行中写下
<activity android:name=".NewGameScreen"></activity>
同样重要的是,您的NewGameScreen类必须
扩展活动
答案很简单,您只是忘记了在标记前的AndroidManiFest.xml文件的下面一行中插入NewGameScreen活动的条目
<activity android:name=".NewGameScreen"></activity>
同样重要的是,您的NewGameScreen类必须扩展活动如果您要扩展LIstActivity,您需要将ListView的id指定为android:id=“@android:id/list”
。然后可以从getLIstView()获取ListView处理程序;
如果您正在扩展活动,那么您可以为ListView提供任何其他id,并使用findViewbyId()获取它
从LOgCat跟踪来看,您似乎正在使用ListActivity。如果您正在扩展ListActivity,则需要将ListView的id设置为android:id=“@android:id/list”
。然后可以从getLIstView()获取ListView处理程序;
如果您正在扩展活动,那么您可以为ListView提供任何其他id,并使用findViewbyId()获取它
从LOgCat跟踪来看,您似乎正在使用ListActivity。您的活动扩展了ListActivity,需要具有正确Id的Listview才能工作@Deepak作为listview的正确id。您的活动扩展ListActivity,需要具有正确id的listview才能工作@Deepak作为listview的正确id。我已经在清单中有了。NewGameScreen。。。我的NewGameScreen不能扩展活动(或者我认为不能),因为我使用的是expandableListview。所以我发现我必须扩展ExpandableListActivity。如果它没有扩展Activity,那么就不需要在AndroidManifest.xml中将它声明为Activityah,我不知道。谢谢,我会试试的。我已经有了。清单中的新游戏屏幕。。。我的NewGameScreen不能扩展活动(或者我认为不能),因为我使用的是expandableListview。所以我发现我必须扩展ExpandableListActivity。如果它没有扩展Activity,那么就不需要在AndroidManifest.xml中将它声明为Activityah,我不知道。谢谢,我会试试的。没用(我将id重命名为list,并将内部引用更改为:R.id.list,但没有帮助。完全相同的错误,我认为这不是id命名问题。由于某些原因,我的NewGameScreen引用错误,无法正确读取我的ExpandableListview。如果您的类扩展了活动
,请将其更改为公共类。)className扩展了ListActivity
。您可以通过调用方法ListView lv=getListView();
来获取ListView。事实上,我很抱歉,我弄错了。我已将id更改为“@id:List”,而不是您编写的,因此,我将id更改为您建议的id,现在我无法按id找到视图。ExpandableListView eView=(ExpandableListView)findViewById(R.id.list);您还可以建议我如何在此处引用该listview吗?您可以通过调用方法listview lv=getListView()来获取listview;它没有帮助:(我将id重命名为list,并将内部引用更改为:R.id.list,但没有帮助。完全相同的错误,我认为这不是id命名问题。由于某些原因,我的NewGameScreen引用错误,无法正确读取我的ExpandableListview。如果您的类扩展了活动
,请将其更改为公共类。)className扩展了ListActivity
。您可以通过调用方法ListView lv=getListView();
来获取ListView。事实上,我很抱歉,我弄错了。我已将id更改为“@id:List”,而不是您编写的,因此,我将id更改为您建议的id,现在我无法按id找到视图。ExpandableListView eView=(ExpandableListView)findViewById(R.id.list);您还可以建议我如何在此处引用该listview吗?您可以通过调用方法listview lv=getListView()来获取listview;