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

时间:2016-08-14 09:38:32

标签: android database sqlite imageview android-context

我创建了一个使用画布的活动,我可以画画。

在活动中,我需要从我在别处创建的表中检索数据。

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

在这方面它没有,我认为因为我扩展了imageview(画布所需)而不是扩展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

}
}

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

error message

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

&#34; examplecanvas.this&#34;没有像你想要提供给DBHandler构造函数的上下文。您应该在getmydata()函数中将Context作为参数传递(然后在调用此方法时使用YourActivity.this或getActivity(),取决于Activity或Fragemnt)。或者只是使用扩展的ImageView构造函数中收到的Context。