Android 带有 imageview 的数据库处理程序

Android database handler with imageview

我创建了一个 activity,它使用 canvas,我可以在上面画画。

在 activity 中,我需要从我在别处创建的 table 中检索数据。

在其他活动中,我使用了下面的数据库处理程序,它工作正常。

这里没有,我想是因为我扩展了 imageview(canvas 需要)而不是扩展 Activity.

提前感谢您的帮助....

这是我的代码:

public class examplecanvas extends ImageView {

float xPos, yPos;
private PointF point;
private Paint paint = new Paint();

public examplecanvas(Context context) {
    super(context);
}

public examplecanvas(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public examplecanvas(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}


@Override
public boolean onTouchEvent(@NonNull MotionEvent event) {
    float x = event.getX();
    float y = event.getY();

    }

    return true;
}

@Override
protected void onDraw(@NonNull Canvas canvas) {
    super.onDraw(canvas);
    if (point != null) {
        canvas.drawCircle(point.x, point.y, 100, paint);
        canvas.save();
    }
}


public void getmydata() {

    String parenta = "parent"

    myDBhandler1 dbHandler;
    dbHandler = new myDBhandler1(examplecanvas.this, null, null, 1); <<<<HERE IS THE ERROR

}
}

...这是我得到的错误:

"examplecanvas.this" 没有您想提供给 DBHandler 构造函数的上下文。您应该在 getmydata() 函数中将 Context 作为参数传递(然后在调用此方法时使用 YourActivity.this 或 getActivity(),具体取决于 Activity 或 Fragemnt)。或者简单地使用在扩展的 ImageView 构造函数中接收到的上下文。

您的数据库处理程序需要上下文,因此您可以通过

new myDbHandler1(getContext(), ...);