Titanium mobileの基礎04〜複数選択肢を持つアラートダイアログ

ボタンを押すと、複数選択肢を持つアラートダイアログを表示する。

<ボタン押下前>

<ボタン押下後>

どれを選んだかを配列のindexで取得することができる。
indexを利用してどれを押下したかを取得して処理分岐させるのに使う。

どれを押したかを取得し、コンソールに表示させている例。

ポイント

・Cancelボタンがどのindexかを指定しておく必要がある。
・indexオプションがIDEの補完機能で出てこないので注意。
・viewへのaddは不要。

ソース(抜粋)

app.js

// 複数の選択肢をもつアラートダイアログ
var multi_option_alert = Ti.UI.createAlertDialog({
	title: 'delete?',//ダイアログのタイトル
	message: 'Are you sure?',//ダイアログの本文
	buttonNames: ['OK!', 'Cancel', 'HELP'],//ボタンの名前&数
	cancel: 1 //cancelボタンが配列の何番目かを指定
}); 

// アラートダイアログのボタンイベント処理
multi_option_alert.addEventListener('click', function(e){
	// この関数内で、どのボタンが押されたかによって処理分岐
	// どのボタンが押されたかの取得方法=配列のindex
	Ti.API.info(e.index);
});

// ボタン押下時のアクション
button.addEventListener('click', function(e){
	// 複数選択肢アラートダイアログ表示
	multi_option_alert.show();
});

地味につまずいたところ

index要素が補完機能で表示されなかったところ。

公式ドキュメントを見たところ普通にオプションとして使えると書いてあったので、単にIDEの仕様だかバグだかそういうもののようだ。

このダイアログは利便性が高そうなので覚えておきたい。