ProgressDialogを使用してみましょう。
ProgressDialogは何かを読み込む時や通信を行う時に処理の進捗を伝える事に利用をします。
ただ、ProgressionDialogでは処理を行う際に一時的なものではなく、開始や終了など、
数秒にわたっての処理になるために、アプリが停止した場合などの処理を考えておく必要があります。
ProgressDialogを使用してみましょう。
ProgressDialogは何かを読み込む時や通信を行う時に処理の進捗を伝える事に利用をします。
ただ、ProgressionDialogでは処理を行う際に一時的なものではなく、開始や終了など、
数秒にわたっての処理になるために、アプリが停止した場合などの処理を考えておく必要があります。
カレンダーでをダイアログで作成したのと同様の方法で、時刻入力のエリアをダイアログで作成していきます。
デフォルトでリストのような形ではなく時計の形をしたインターフェースがデフォルトで採用される形になっているので、
デザインをデザイナーさんに用意いただくよりも、アンドロイドのデフォルトのデザインをそのまま使えるように交渉してしまうのが割と手っ取り早いです。アンドロイドが提供しているUIを変更するのは色などは変えられるけど形を変えるのが難しく、ちょっと変えるのに1から作る必要が出てしまうので注意です。
androidアプリでは、ダイアログで日付をいれてもらう為のカレンダーのインターフェースを出す事が可能です。
カレンダー入力後には、表示されているインターフェイスの部分は消える仕組みになっています。
ダイアログを表示させる時にリストのスタイルでダイアログを出現させる事ができる。
使い方としては、sppiner(Spiner(コンポーネント)を使う。)のような使い方も可能です。
ボタンの機能を単純にして、スクリプトで選択肢を制御する事ができる為に幅広いデザイン対応ができます。
こちらはOK,NG,CANCELなど役割に応じたボタンではない為に、全てをスクリプトで制御する事ができます。
ダイアログを作成して、ボタンを押せるようにしてみたいと思います。
ボタンに関しては、最大3個までで、役割はOK、NG、CANCELの3つが配置可能です。
上記を表示させる為には下記のように記述をする
package in.andante.android.makealert; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; public class MakeAlert extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onResume(){ super.onResume(); new AlertDialog.Builder(this) .setTitle("タイトル") .setCancelable(false) .setMessage("3つまで") .setNeutralButton("CANCEL",null) .setPositiveButton("OK",null) .setNegativeButton("NG",null).show(); } }
ひとつ前のエントリ(アラートダイアログを出現させる。)とほぼソースは変わらないで、setPositiveButton,setnegativeButtonがたされただけでボタンが3つ表示可能である。
上記の状態では全てのボタンで動作を行わないので、ボタンのイベントをスクリプトで追加を行う。
また、イベントをActivityで行う為にimplementsではDialogInterface.OnClickListenerを追加する。イベント実行のファンクションは下記のような形になる。
package in.andante.android.makealert; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.widget.TextView; public class MakeAlert extends Activity implements DialogInterface.OnClickListener{ /** Called when the activity is first created. */ public AlertDialog _alertDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void onResume(){ super.onResume(); _alertDialog = new AlertDialog.Builder(this).setTitle("タイトル").setCancelable(false).setMessage("3つまで").setNeutralButton("CANCEL",null).setPositiveButton("OK",this).setNegativeButton("NG",this).show(); } @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub if(_alertDialog == dialog){ TextView _tv = new TextView(this); switch(which){ case DialogInterface.BUTTON_POSITIVE: _tv.setText("clcikOK"); break; case DialogInterface.BUTTON_NEGATIVE: _tv.setText("clcikNG"); break; } setContentView(_tv); } } }
上記のようにonClickでどのダイアログかと、どのボタンが押されたかを判別する事ができる。ボタンクリックでステージにTextViewを配置してどのボタンがクリックされたかを示す。