ライブ壁紙のオンライン チュートリアルに従っています。この間、私は奇妙な問題に遭遇しました。問題は、以下のコードのコンストラクター MyPoint が、String、int、int を取得しており、String、float、float が必要であると述べていることです。ただし、このコンストラクターの x と y は、ローカルfloatのx と y を参照します。コンストラクターで x または y を選択して確認したところ、ローカルの float x または y が点灯するので、入力として float を取得する必要があります。では、なぜこのエラーが発生するのでしょうか。
@Override
public void onTouchEvent(MotionEvent event) {
if (touchEnabled) {
float x = event.getX();
float y = event.getY();
SurfaceHolder holder = getSurfaceHolder();
Canvas canvas = null;
try {
canvas = holder.lockCanvas();
if (canvas != null) {
canvas.drawColor(Color.BLACK);
circles.clear();
circles.add(new MyPoint(String.valueOf(circles.size() + 1), x, y));
drawCircles(canvas, circles);
}
} finally {
if (canvas != null)
holder.unlockCanvasAndPost(canvas);
}
super.onTouchEvent(event);
}
}
編集:
正確なエラーは次のとおりです。「コンストラクター MyPoint(String, float, float) は未定義です」
簡易修正オプション: 「コンストラクター MyPoint(String, int, int) を MyPoint(String, float, float) に変更する」