アラートダイアログ AlertDialog リスト形式 OK cancelボタン付き
/////////////////////////// バックキーを押されたときの処理
dl.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// バックキーを押されたときの処理
LinearLayout l_hiduke = (LinearLayout)tview.findViewById(R.id.liner_hiduke);
l_hiduke.setBackgroundColor(Color.parseColor("#00ff0000"));
}
});
シンプル OKNGボタンつき確認ダイアログ
final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("タイトル"); // タイトルを設定 builder.setMessage("メッセージ"); // メッセージを設定 builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d("Sample","OKを押した"); } }); builder.setNegativeButton("NG", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d("Sample","NGを押した"); } }); AlertDialog dialog = builder.create(); // ビルダーの設定でダイアログを作る dialog.show(); // ダイアログを表示 }
OK CANCEL以外で閉じる方法
LayoutInflater factory = LayoutInflater.from(this);
inputView = factory.inflate(R.layout.edit_cat, null);
//AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("カテゴリの編集");
builder.setView(inputView);
EditText ed1 = (EditText)inputView.findViewById(R.id.editText1);
ed1.setText(TARGET_CATNM);
final AlertDialog dialog = builder.create();
//////////////////////////////////OK
inputView.findViewById(R.id.button3)
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
TARGET_CATNM = ed2.getText().toString();
dialog.dismiss();
save_proc();
}
});
//////////////////////////////////cancel
inputView.findViewById(R.id.button4)
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
// AlertDialog.dismiss();
}
});
/*
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
TARGET_CATNM = ed2.getText().toString();
save_proc();
}
});
//////////////////////////////////////////////キャンセル
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
*/
inputView.findViewById(R.id.button1)
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
// ed2.setText(TARGET_CATNM+"eee");
//EditText ed2 = (EditText)inputView.findViewById(R.id.loged2);
//EditText ed2 = (EditText)findViewById(R.id.loged2);
//ed2.setText("abcdefghijklmn");
int start = ed2.getSelectionStart();
int end = ed2.getSelectionEnd();
String gtx = ed2.getText().toString();
int l = gtx.length();
hazime= gtx.substring(0,start);//1文字目からカーソル位置まで取り出す
owari= gtx.substring((start+1)-1);
Log.v("start,end,length",start+"**"+end +"***"+l);
Log.v("hazime,end,owari",hazime+"**"+owari);
try {
// インテント作成
Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // ACTION_WEB_SEARCH
intent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(
RecognizerIntent.EXTRA_PROMPT,
"VoiceRecognitionTest"); // お好きな文字に変更できます
// インテント発行
startActivityForResult(intent, REQUEST_ONSEI);
} catch (ActivityNotFoundException e) {
// このインテントに応答できるアクティビティがインストールされていない場合
Toast.makeText(MainActivity.this,
"ActivityNotFoundException", Toast.LENGTH_LONG).show();
}
}
});
dialog.show();
AlertDialogは横幅がwrapしない。
AlertDialogにsetViewするとレイアウト幅は何を指定しようと
画面幅まで引き伸ばされる daialogは大丈夫
レイアウト流し込み
LayoutInflater factory = LayoutInflater.from(this);
final View inputView = factory.inflate(R.layout.ednote, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setTitle("カスタムダイアログ");
builder.setView(inputView);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
単一選択式
final String[] item_list = {results.get(0),results.get(1),results.get(2)};
onseiwords = item_list[0];
new AlertDialog.Builder(MainActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("音声変換候補")
.setSingleChoiceItems(item_list, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//⇒アイテムを選択した時のイベント処理
onseiwords = item_list[which];
Log.v("onseiwords",onseiwords +"***"+which);
}
})
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichok) {
//⇒OKボタンを押下した時のイベント処理
//【NOTE】
//whichButtonには選択したアイテムのインデックスが入っているわけでは
//ないので注意
Toast.makeText(MainActivity.this,
"OKボタンを押下しました。" + Integer.toString(whichok)+"***"+onseiwords,
Toast.LENGTH_SHORT).show();
EditText ed2 = (EditText)findViewById(R.id.loged2);
ed2.setText(hazime+onseiwords+owari);
}
})
.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichcl) {
//⇒キャンセルボタンを押下した時のイベント処理
//【NOTE】
//whichButtonには選択したアイテムのインデックスが入っているわけでは
//ないので注意
Toast.makeText(MainActivity.this,
"キャンセルボタンを押下しました。" + Integer.toString(whichcl),
Toast.LENGTH_SHORT).show();
}
})
.show();
}
リスト形式ダイアログ setItem を使う
finalCharSequence[] items ={"item1","item2","item3"};AlertDialog.Builder listDlg =newAlertDialog.Builder(this); listDlg.setTitle("タイトル"); listDlg.setItems( items,newDialogInterface.OnClickListener(){publicvoid onClick(DialogInterface dialog,int which){// リスト選択時の処理// which は、選択されたアイテムのインデックス}});// 表示 listDlg.create().show();}
/////////////////////////////リスト形式
final CharSequence[] items = {"Red", "Green", "Blue"};
new AlertDialog.Builder(MainActivity.this)
.setTitle("Pick a color")
.setItems( items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//button.setText(String.format("%sが選択されました。",items[item]));
}
})
.show();
public void accent_click(View view) {
ACPOS = E5;
Log.v("ACPOS",ACPOS + "");
final Dialog dialog = new Dialog(this);
// Dialog のレイアウトを指定
dialog.setContentView(R.layout.ac_select);
// タイトルの指定
dialog.setTitle("アクセント登録");
// Button がクリックされたときに呼び出されるコールバックを登録
dialog.findViewById(R.id.button1)
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ACPOS = 1;
dialog.dismiss();
accnt_dsp();
}
});
// TextView tvtgtdd = (TextView)findViewById(R.id.textView6);
// Animation animac= AnimationUtils.loadAnimation(this,R.anim.edit_accent);
// tvtgtdd.startAnimation(animac);
dialog.show();
}
----------------------------------------------------------------
DialogInterface.OnClickListener() {
// AlertDialog.Builderオブジェクト生成
AlertDialog.Builder ad = new AlertDialog.Builder(this);
// タイトル指定
ad.setTitle("選択して下さい");
// アイコン指定
ad.setIcon(R.drawable.ic_launcher);
// 単一選択アイテムのリスト状態を管理
selectnum = -1; //第2引数 初期選択位置 -1はなし!!
ad.setSingleChoiceItems(dspfiles, selectnum, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// タップされた位置(which)で要素の値を取得
// File dspFile = new File(files[which]);
result_item = edit_path + dspfiles[which];
// Log.v("dspFile= ",""+result_item +" "+dspfiles[which]);
} });
//////////////////////////////////////////// 肯定的な意味を持つボタンを設定
ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// PositiveButto押下時の処理を記述します。
//edit
TextView tv3 = (TextView) findViewById(R.id.textView3);
tv3.setText(result_item);
onResume();
}
});
ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
ad.show();
}