素人のアンドロイドアプリ開発日記

ダイアログを出してボタンで選択をする。

2011.02.18

ダイアログを作成して、ボタンを押せるようにしてみたいと思います。

ボタンに関しては、最大3個までで、役割はOK、NG、CANCELの3つが配置可能です。

dialog2

 

上記を表示させる為には下記のように記述をする

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を配置してどのボタンがクリックされたかを示す。

 

 

同じカテゴリの記事を紹介します

タブのデザインを変更する。タブを下にコンテンツを上に表示したいtabを利用してのActivityを表示する。tabを利用してのviewを作成する。Toastを表示してみる。ProgressDialogを使ってみる。ダイアログで時刻の入力画面ダイアログでカレンダーで日付入力ダイアログでリストを出現させる。アプリのメニューを作成する。Spiner(コンポーネント)を使う。EditTextの文字制限/ヒントとかについてオートコンプリート機能をTextに付加する。EditTextクラスを使用する。レイティングバー(コンポーネント)を使うシークバー(コンポーネント)を使うチェックボックス(コンポーネント)を使うラジオボタン(コンポーネント)を使うトグルボタン(コンポーネント)を使うTextViewクラスで文字列を作成する。

カテゴリー:コンポーネント

公開中のアプリ、是非ダウンロードしてみてください

2chまとめのたね

RSSを利用してさまざまなブログの情報をキュレーションしてくれるアプリ

インストールする

ひらがな戦記

OPENGL ES2 を利用したカルタのソーシャルゲーム

インストールする