Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Dialog的九種常用形式

Android Dialog的九種常用形式

編輯:關於Android編程

Dialog是常用的一種Android控件,一般常用的形式有九種。

第一種,最常見的普通dialog

 

private void nomalDialog() {
		//創建對話框對象:AlertDialog的內部類Builder的對象
		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
		//給對話框設置圖標
		builder.setIcon(R.drawable.ic_launcher);
		//設置Title
		builder.setTitle(Title);
		//設置對話框的信息內容
		builder.setMessage(是否刪除選中的數據);
		//設置選擇按鈕
		builder.setPositiveButton(刪除, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				//進行刪除操作
				Toast.makeText(MainActivity.this, 點擊了刪除按鈕, Toast.LENGTH_SHORT).show();
			}
		});
		builder.setNegativeButton(取消, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this, 點擊了取消----按鈕, Toast.LENGTH_SHORT).show();
			}
		});
		//顯示對話框
		builder.show();
	}

第二種 列表對話框

 

 

private void listDialog() {
		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
		builder.setTitle(請做出選擇);
		builder.setItems(R.array.strs, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();
			}
		});
		builder.show();
	}

第三種 單選列表對話框,淘寶取消訂單原因就是用的此控件

 

 

	private void singleDialog() {
		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
		//strs為在valuse目錄下新建一個arrays.mxl文件
		final String[] strs=getResources().getStringArray(R.array.strs);
		//給Dialog設置單選選項。參數:1數據源   2默認選中項   3監聽
		builder.setSingleChoiceItems(strs, 1, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				System.out.println(===witch==+which);
//				Dialog對象  whitch選中項
				Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();
				
			}
		});
		//選擇結束後不會自動消失對話框,so加上按鈕
		builder.setPositiveButton(確定, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				System.out.println(===witch=btnclick=+which);

			}
		});
		dialogs = builder.show();
	}

第四種 多選列表對話框

 

 

private void mutiDialog() {
		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
		final boolean[] checkedState=new boolean[3];
 		builder.setMultiChoiceItems(R.array.strs, checkedState, new OnMultiChoiceClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				
			}
		});
 		builder.setPositiveButton(確定, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				String str=;
				for(int i=0;i<3;i++){
					if(checkedState[i])
						str+=true;
					else
						str+=false;
				}
				Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
			}
		});
 		builder.show();
	}

第五種 自定義布局對話框

 

 

private void mdefineDialog() {
		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
		//內容布局轉換成View
		View view=View.inflate(MainActivity.this, R.layout.view_dialog, null);
		//獲取Dialog內容View中的控件
		final EditText etxtv1=(EditText) view.findViewById(R.id.etxtv1);
		final EditText etxtv2=(EditText) view.findViewById(R.id.etxtv2);

		builder.setView(view);//把View添加進Dialog
		//給Dialog添加按鈕
		builder.setPositiveButton(登陸, new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this,etxtv1.getText().toString()+etxtv2.getText().toString(), Toast.LENGTH_SHORT).show();
			}
		});
		builder.show();
	}

第六種 進度對話框

 

 

private void progressDialog() {
		ProgressDialog proDia=new ProgressDialog(MainActivity.this);
		proDia.setMessage(正在加載...);
		proDia.show();
		//消失對話框
//		proDia.dismiss();
	}

第七種 水平進度對話框

 

 

private void progressHDialog() {
		final ProgressDialog proD=new ProgressDialog(MainActivity.this);
		//設置進度條的樣式
		proD.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
		//設置進度條的最大進度
		proD.setMax(100);
		new Thread(new Runnable(){

			@Override
			public void run() {
				for(int i=0;i<=100;i++){
					try {
						Thread.sleep(200);
						proD.setProgress(i);
						if(i==100){
							proD.dismiss();
						}
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}}).start();
		proD.show();
	}

第八種 日期對話框

 

 

private void DateDialog() {
		//日期選擇監聽器
		OnDateSetListener DL=new OnDateSetListener() {
			
			@Override
			public void onDateSet(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				//參數選擇結果:年 月 日
				Toast.makeText(MainActivity.this,year +:+monthOfYear+:+dayOfMonth, Toast.LENGTH_SHORT).show();

			}
		};
		//日期選擇對話框:參數1上下文   參數2:監聽器    參數...默認顯示日期 實際顯示的月份比這裡設置的月份數會多1個月
		DatePickerDialog DD=new DatePickerDialog(MainActivity.this, DL, 2015, 4, 12);
		//顯示
		DD.show();
	}


 

第九種 時間對話框

 

private void TimeDialog() {
		OnTimeSetListener timeL=new OnTimeSetListener() {
			
			@Override
			public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
				//參數:參數2選擇的小時     參數3:分鐘
				Toast.makeText(MainActivity.this,hourOfDay +:+minute, Toast.LENGTH_SHORT).show();
			}
		};
		//參數:參數1:上下文對象   參數2:OnTimeSetListener監聽器   參數3:對話框彈出以後默認顯示時間           參數5:是否是24小時
		TimePickerDialog time=new TimePickerDialog(MainActivity.this, timeL, 0, 0, false);
		time.show();
		
	}
 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved