我的项目现在实际上有很多行代码,所以我会通过只在此处包含重要的内容来节省您的时间。我希望有足够的信息来说明问题。
我有两个主要类:一个“GraphView”类,然后是主 Activity 的代码。在 GraphView 中,我创建了一个函数,它本质上是在画布上绘制一个矩形。它被称为drawPixel。在 GraphView 的 onDraw 方法中,我多次调用 drawPixel,它在屏幕上绘制矩形。现在,在主代码中,我以编程方式创建了一个布局和一个按钮。我想要的是,我不想在 GraphView 的 onDraw 方法中调用 drawPixel,而是想在单击按钮时绘制这些矩形。我尝试这样做:
someButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Canvas canvas = new Canvas();
// TODO Auto-generated method stub
for (int i=1; i<50; i++) {
someGraphView.drawPixel(canvas, i, i);
}
}
});
它没有用。当我通过 onDraw() 调用时,矩形正确绘制,但是当我从 setOnClickListener 方法内部调用它们时,它们根本不绘制。有谁知道我做错了什么?