【问题标题】:Android database handler with imageview带有 imageview 的 Android 数据库处理程序
【发布时间】:2016-08-14 09:38:31
【问题描述】:

我创建了一个活动,该活动使用我可以在其上绘制的画布。

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

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

我认为它没有,因为我扩展了 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

}
}

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

【问题讨论】:

    标签: android database sqlite imageview android-context


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        • 1970-01-01
        • 1970-01-01
        • 2018-11-17
        相关资源
        最近更新 更多