コード public class MainActivity extends Activity{ CanvasView cv; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cv = new CanvasView(this); setContentView(cv); } }
コード public class CanvasView extends View{ Paint paint = new Paint(); int x = 100, y = 100; int r = 50; public CanvasView(Context context) { super(context); } public void onDraw(Canvas canvas){ paint.setColor(Color.BLUE); paint.setStyle(Paint.Style.FILL); paint.setAntiAlias(true); canvas.drawCircle(x, y, r, paint); } }
上のプログラムは円を描くプログラムです。
エラーは出ていません。
引数に関して質問です。
インスタンス化したものとコンストラクタの引数は同じでないといけないので
MainActivityクラスのcv = new CanvasView(this);のthisと
CanvasViewクラスのpublic CanvasView(Context context) {
のcontextは型は同じだと思うのですがthisとcontextはなぜ同じになるのでしょうか?
thisはMainActivity自身なのでMainActivityとthisとcontextは同じものなのでしょうか?
またこのcv = new CanvasView(this);のthisの部分をgetApplication()にしても正常に動いたのですが、getApplication()とcontextはどういう関係なのでしょうか?
質問内容がわかりにくいかもしれませんがよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/29 01:03