Androidアプリ開発パーフェクトマスター - 4日目
Chapter9
続き。
プログレスバダイアログの表示。
Handler、Runnableの使い方に注目。
Handler | Android Developers
package com.myexample.chapter9_2_1_1.app; import android.app.ProgressDialog; import android.os.Handler; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int showTime = 10000; final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setCancelable(true); progressDialog.setTitle("実行中"); progressDialog.setMessage("10秒後に画面を閉じます。"); progressDialog.show(); new Handler().postDelayed(new Runnable() { @Override public void run() { progressDialog.dismiss(); } }, showTime); } }
- プログレスバーに進捗状況を表示
CountDownTimer | Android Developers
package com.myexample.chapter9_2_1_2.app; import android.app.ProgressDialog; import android.os.CountDownTimer; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ((Button) findViewById(R.id.button)).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("Shows the progress"); progressDialog.setMessage("Wait for a while..."); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setCancelable(true); progressDialog.setMax(100); progressDialog.show(); new CountDownTimer(10000, 100) { @Override public void onTick(long l) { progressDialog.setProgress((int) ((10000 - l) / 100)); } @Override public void onFinish() { progressDialog.dismiss(); } }.start(); } } ); } }
- プログレスダイアログをアプリの上部に表示する
だめ!ギブアップ!
できないよ!!
setContentViewより前に記述してもRuntimeException。
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
super.onCreate よりも前に書くと、Exceptionは発生しないが、ボタン押しても無反応。
困った。