一旦使用覆盖方法并再次使用而没有覆盖方法和两个不同的结果

时间:2015-07-03 11:48:25

标签: java

this question的答案对我有用。但我有一个新问题。我读了Java语法,但是我在Java语法的某些部分遇到了问题,因此我在这里问我的问题。我更改了代码链接的两部分,如下所示:

在Draw.java中: 我将public void onDraw(Canvas canvas)更改为public void d(Canvas canvas)

我在 MainActivity.java

中添加了以下内容
public class MainActivity extends Activity {
    Draw draw;
    Cal cal;
    TextView textView;
    RelativeLayout linearLayout;   

    Canvas canvas;

    public void onCreate(Bundle s) {
        super.onCreate(s);
        setContentView(R.layout.activity_main);

        linearLayout = (RelativeLayout) findViewById(R.id.t);
        cal = new Cal(this);
        cal.cal();

        textView = new TextView(getApplicationContext());
        textView.setText("" + cal.result);
        textView.setTextColor(Color.RED);

        draw = new Draw(this);            

        draw.d(canvas);

        linearLayout.addView(textView);
        linearLayout.addView(draw);
    }}

代码可以成功编译和安装。但它只能在我的设备中运行一段时间,而且无法在 AVD 管理器中运行。 我确定使用的语法是正确的。但是我不知道代码中碰撞的原因是什么,我无法正确看到输出代码。

UPDATE,Draw.java

public class Draw extends View {
Paint paint = new Paint();
Draw(Context context) {
    super(context);
}
public void d(Canvas canvas) {
  paint.setColor(Color.BLUE);
    canvas.drawCircle(120,120,40,paint);
    }
}

1 个答案:

答案 0 :(得分:0)

我没有尝试过,也许它很愚蠢但是尝试添加Draw构造函数的公共前端:

**public** Draw(Context context) {
     super(context);
}

在d()方法中,应该少一个括号。