【问题标题】:Pass data from an Activity to a Class将数据从活动传递到类
【发布时间】:2011-12-14 12:14:02
【问题描述】:

我的游戏有问题。我有一个主要活动,它显示了我绘制游戏的表面视图。现在我想将数据从我的主要活动传递给一个类,但每次我尝试这个我都会得到一个错误,在 LogCat 中我看到错误发生在我传递数据的行上。这是我的代码 主要活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
}
public boolean onTouchEvent(MotionEvent event) {
            currentX = event.getX();
    currentY = event.getY();
    if(event.getAction() == MotionEvent.ACTION_DOWN){
        touchDisplay = true;
        banka = new Banka(currentX, currentY, touchDisplay);
    }
    if(event.getAction() == MotionEvent.ACTION_UP){
        touchDisplay = false;
        banka = new Banka(currentX, currentY, touchDisplay);
    }
    return super.onTouchEvent(event);
}

接收数据的类:

public class Banka {
public GameView gameView;

public float currentX = 0;
public float currentY = 0;
public boolean touchDownTrue = false;

public Banka (float x, float y, boolean touch){
    this.currentX = x;
    this.currentY = y;
    this.touchDownTrue = touch;
    gameView.isReady();
}

这里是我的 LogCat 错误:

这里是日志:

线程以未捕获的异常退出 (group=0x4001b188) 未捕获 处理程序:线程主因未捕获的异常而退出 java.lang.NullPointerException 在 com.whlabs.nameless.Banka.(Banka.java:14) 在 com.whlabs.nameless.MainActivity.onTouchEvent(MainActivity.java:31) 在 android.app.Activity.dispatchTouchEvent(Activity.java:2064) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4363) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 在 dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 错误是什么?你在 Banka 中哪里初始化 gameView?
  • 您能否发布您遇到的完整错误?
  • @Eighteight - 因为一旦我开始工作,就会有更多的代码包含 GameView 类。

标签: java android android-activity


【解决方案1】:

我猜你得到一个 NullPointerException 是因为你没有初始化 gameView。解决此问题的一种方法是在构造函数中初始化 gameView,如下所示:

public Banka (float x, float y, boolean touch){
    this.currentX = x;
    this.currentY = y;
    this.touchDownTrue = touch;
    gameView = new GameView();
    gameView.isReady();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多