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);
}
}
答案 0 :(得分:0)
我没有尝试过,也许它很愚蠢但是尝试添加Draw构造函数的公共前端:
**public** Draw(Context context) {
super(context);
}
在d()方法中,应该少一个括号。