ダイアログを作成して、ボタンを押せるようにしてみたいと思います。
ボタンに関しては、最大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を配置してどのボタンがクリックされたかを示す。