こんにちは。今、AndroidStudioにて、Androidの開発を

Writer: admin Type: sudam Date: 2019-01-21 00:00
こんにちは。今、AndroidStudioにて、Androidの開発をしていて、setContentViewについて困っています。--------------------------import android.app.Activity;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Handler;import android.os.Bundle;import android.view.View;import android.content.Context;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //A //setContentView(new DrawTest(this)); int k =0; while(k>4) { //B setContentView(new DrawTest(this)); new Handler().postDelayed(new Runnable() { @Override public void run(){ //処理 } }, 3000); k++; } } //Viewをextendsしたクラスを作成し描画処理をする static public class DrawTest extends View { public DrawTest(Context context) { super(context); } //描画処理を記述 @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); //画面を描画 } }}---------------------------上記の「A」の位置にsetContentViewを配置した場合(setContentViewを一回しか呼び出さない場合)は、上手くいくのですが、「B」の位置に配置したときに上手くいきません。(3秒の間隔ごとにsetContentViewを4回呼び出す)エラーが起きるわけではないですが、画面が真っ白のまま何も描画されません。一定間隔ごとに画面を更新するようなアプリを作りたいのですが、どのようにすれば良いのかご教授いただけると幸いです。よろしくお願いします。共感した0###setContentViewは、onCreateメソッドの内部で呼び出さなければならないはず。それも何度も呼び出しません。1回だけです。3秒間隔で何度も呼び出すって、たぶん使い方間違えてます。DrawTextのonDrawを定期的に実行させたいということですよね?そしたら、Timerを使って定期的にinvalidateを呼び出すようにしたらどうでしょうかね?ナイス0
###回答ありがとうございます。まだ解決していませんが、自分で調べていろいろやってみたいと思います。ありがとうございました。

 

TAG