カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

ダイアログの表示位置を指定する

AlertDialog.Builder ad = new AlertDialog.Builder(this);

ad.setTitle("タイトル");
ad.setMessage("テストダイアログ");
ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
	public void onClick(DialogInterface dialog, int whichButton) {
		//OKボタンの処理
		}
});

ad.setNegativeButton("Cancel", null); //何もしないのでnull

AlertDialog alertDialog = ad.create(); //ここでダイアログをalertDialogに渡す

WindowManager.LayoutParams lp = alertDialog.getWindow().getAttributes();

lp.gravity = Gravity.TOP;      //画面上部に
//lp.gravity = Gravity.LEFT;   //画面左側に
//lp.gravity = Gravity.RIGHT;  //画面右側に
//lp.gravity = Gravity.BOTTOM; //画面下部に

//透明にすることもできます
//lp.alpha = 0.8f;

alertDialog.getWindow().setAttributes(lp);
alertDialog.show(); //ここでad.show();とすると通常の表示になってしまう
14,014 views

文字入力ダイアログ

文字の入力欄をダイアログで表示します。

EditText editView = new EditText(this);

new AlertDialog.Builder(this)
    .setIcon(R.drawable.ic_dialog_info)
    .setTitle("ダイアログのタイトル")
    .setView(editView)
    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            // OKボタンの処理
        }
    })
    .setNegativeButton("キャンセル", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
        }
    })
    .show();
4,684 views

フォルダ選択ダイアログ

アラートダイアログを使って、ファイル選択にも応用できる参照機能
こちらのサイトを参考にさせていただきました。
http://d.hatena.ne.jp/Silent-Bob/20110705

・ルートフォルダーを設定
指定したフォルダー階層より上に上がれないようにします。

private static final String ROOT_PATH = 
    Environment.getExternalStorageDirectory().getPath() + "/";

続きを読む…»

10,645 views

選択用のダイアログ表示

サブメニューやコンテキストメニュー以外で、選択してもらう機能を実装したいときに発見しました。
複数の選択肢を持たせることができるダイアログを実装することができます。

AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setTitle("選択");
final String[] items = { "01", "02", "03"};
ad.setItems(items, new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Log.v(TAG, items[which] + "が選択されました。");

        switch(which){
        case 0:
            //01が選択された場合の処理
            break;
        case 1:
            //02が選択された場合の処理
            break;
        case 2:
            //03が選択された場合の処理
            break;
        }
    }
});
ad.create().show();

続きを読む…»

2,439 views

日付・時刻選択ダイアログ

日付選択ダイアログ

final Calendar calendar = Calendar.getInstance();
final int year = calendar.get(Calendar.YEAR);
final int month = calendar.get(Calendar.MONTH);
final int day = calendar.get(Calendar.DAY_OF_MONTH);

final DatePickerDialog datePickerDialog = new DatePickerDialog(
  this,
  new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
      Log.v("", String.valueOf(year) + "/" +
      String.valueOf(monthOfYear + 1) + "/" + 
      String.valueOf(dayOfMonth));
    }
  }, year, month, day);
  datePickerDialog.show();
}

続きを読む…»

3,317 views