试图为游戏循环实现一个线程

时间:2014-03-05 13:03:27

标签: java android multithreading

我是学习Android开发的新手,我必须采取的下一步是能够理解线程,以便能够实现游戏循环。

我从谷歌和StackOverflow中获取了知识,并从示例中获取了一些代码似乎不起作用的代码:

MainActivity.java是一个带有播放按钮的简单标题屏幕。这似乎工作正常,将链接到下一个活动。但是,每当我尝试加载下一个活动时,我都会崩溃。基于错误我的猜测让我相信线程与RelativeActivity有问题,但我不太确定问题究竟是什么,我很困惑。

Here是我被抛出的错误,我在尝试用它解释问题时遇到了问题。

感谢。

2 个答案:

答案 0 :(得分:2)

R.id.layoutRelativeLayout,但您正在尝试将其投放到GameView,这会导致您的崩溃。

编辑:

GameView添加到您可以执行的RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

 <com.your.package.GameView
    android:id="@+id/my_game_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ship1" />
<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ship1" />

</RelativeLayout>

并使用

进行检索
 GameView myGameView = (GameView) findViewById(R.id.my_game_view);

答案 1 :(得分:0)

嗯,从你到目前为止编写的代码中,我可以解释ClassCastException的原因。

  • 您在两个XML文件中声明了RelativeLayout。
  • RelativeLayouts都使用相同的android:id“@ + id / layout”
  • 在GameView.java中,您尝试通过指定id来查找视图     m_game =(GameView)findViewById(R.id.layout);
  • IMO您正在检索其中一个RelativeLayouts,然后尝试将其投射到GameView。由于这是不可能的,Java抛出异常。