安卓中關於對話方塊的四種寫法
阿新 • • 發佈:2019-01-30
單選框
多選框
進度條
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();
}