1. 程式人生 > >安卓中關於對話方塊的四種寫法

安卓中關於對話方塊的四種寫法

單選框
public void onClick(View v) {
		Builder builder = new AlertDialog.Builder(this);// 建立alertDialog物件
		builder.setTitle("請選擇你喜歡的科目");
		final String[] items = new String[] { "Android", "ios", "html",
				"html5", "c++" };
		builder.setSingleChoiceItems(items, -1, new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(getApplicationContext(),
						"你選擇的科目是:" + items[which], 0).show();
				dialog.cancel();
			}
		});
		builder.show();

	}

普通對話方塊

public void putong(View v) {
		Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("升級提示");
		builder.setMessage("1.新增簡訊功能\n2.新增吸費功能");
		builder.setNegativeButton("下次更新",  new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.cancel();
				
			}
		}) ;
		
		builder.setPositiveButton("升級", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(getApplicationContext(), "開始下載新版本", 0).show();
				dialog.cancel();
				
			}
		});
		builder.show();
	}

多選框
Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("你去過的地方");
		final String[] items=new String[]{"北京","西安","大同","日本"};
		final boolean[] check=new boolean[]{true,false,false,false};
		
		//設定單選項
		builder.setMultiChoiceItems(items, check, new OnMultiChoiceClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {	
			}
		});
		
		//4.設定確定按鈕
		builder.setNegativeButton("確定", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				StringBuilder sb=new StringBuilder();
				for (int i = 0; i < items.length; i++) {
					if(check[i]){
						sb.append(items[i]).append(",");
					}
				}
				Toast.makeText(getApplicationContext(), sb.toString(), 0).show();
				dialog.cancel();
			}
		});
		
		builder.show();
	}

進度條
public void jdt(View v) {
		final ProgressDialog progressDialog=new ProgressDialog(this);//建立一個進度條的對話方塊
		progressDialog.setTitle("正在下載...");//設定一個標題
		progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//設定水平的
		progressDialog.setMax(50);
		new Thread(new Runnable(){

			@Override
			public void run() {
				for (int i = 0; i <=50; i++) {
					try {
						Thread.sleep(100);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					progressDialog.setProgress(i);
				}
				//取消進度條展示
				progressDialog.cancel();
				
			}}).start();
		progressDialog.show();
		
		
	}