2012-07-30 35 views
0

我正在为Android做一个游戏,但我从来没有真正找到改变活动或内容视图的好方法。我现在有一个主菜单活动,其内容视图接收MotionEvent s并将它们分派到我的自定义按钮。另一个Activity有一个简单的contentView,它只用一种颜色来绘制屏幕。所有contentView s具有相同的基类和活动2源自活动1.在Android中改变活动

问题是,如果尝试更改活动,应用程序只会崩溃。大约需要20秒,然后出现错误消息,说应用程序没有响应。 在logcat中,还那里有一个消息keyDispatchingTimedOut sending to activity2 以下是活动更改代码:

public void changeActivity() { 
    Log.d("changing", "activity"); 
    Intent i=new Intent(this, Activity_Level.class); 
    startActivity(i); 
} 

任何想法?

+1

Post crash message。 – kosa 2012-07-30 14:46:44

回答

0

在没有看到logcat的消息,我敢打赌,你忘了添加在AndroidManifest.xml

0

我感觉到你没有所有活动添加到manifest.xml文件的活动。尝试添加所有的活动,并给它一个运行。

+0

我没有忘记添加在我的XML活动:<活动 机器人:名字=“ACTIVITY_LEVEL。” 机器人:标签=‘@字符串/ APP_NAME’> – user1563232 2012-07-30 15:00:10

+0

然后张贴堆栈跟踪,以把事情说清楚 – overbet13 2012-07-30 15:00:44

1

你必须使用你的活动范围内的方法

Intent i=new Intent(Youar_Activity_Name.this, Activity_Level.class); 
        ^^^^^^^^^^^^^^^^^^^^^^ 

使用上面的代码中你changeActivity()方法。

+0

注意如果'changeActivity()'方法在'Activity'范围内,user1563232提供的代码不需要这样的修复。 – overbet13 2012-07-30 15:03:48

1

如果应用程序没有响应,这是因为您在UI线程上执行了长时间的操作。也许在调用这个函数之后,你会继续做其他事情吗?

如果像人们所说的那样活动没有打开(并且您可以通过写入onCreate方法内的日志来检查它),请检查清单。在任何情况下,如果您想要更好地控制活动,您可以检查可能用于意图的标志,并且还可以使用片段(如果可能),就像Google的建议一样。

+0

处理我的输入事件后立即打印oncreate方法中的日志。在永恒和几个错误消息之后,其他contentview是可见的。 – user1563232 2012-07-30 15:10:49

+0

你将不得不展示一些活动的代码。 – 2012-07-30 15:24:53

+0

继承人活动:http://pastebin.com/eQjefaWk和其他活动切换到:http://pastebin.com/KCWkKpgg – user1563232 2012-07-30 15:44:57