【发布时间】:2014-03-20 00:18:26
【问题描述】:
我已经尝试在我的手机中运行并编译这段代码:
public class SingleTouchEventView extends View {
private Paint paint = new Paint();
private Path path = new Path();
public SingleTouchEventView(Context context, AttributeSet attrs) {
super(context, attrs);
paint.setAntiAlias(true);
paint.setStrokeWidth(6f);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(eventX, eventY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(eventX, eventY);
break;
case MotionEvent.ACTION_UP:
// nothing to do
break;
default:
return false;
}
// Schedules a repaint.
invalidate();
return true;
}
}
但它崩溃了,我的 logcat 说以下内容:
无法启动类......没有空的构造函数
任何线索我做错了什么?
【问题讨论】:
-
为您的 logcat 中发布的类创建一个空的构造函数...
-
很明显你需要一个空的构造函数
-
请从 logcat 发布堆栈跟踪。
-
但是,视图的空结构仍然没有意义,因为要实例化它至少需要上下文
-
并且缺少 2 个构造函数,一个需要上下文和样式。同意@blackbelt 没有使用空的构造函数
标签: android