android提供了四類常用的對話框,本文分享具體實現(xiàn)方法:
這里主要介紹第一種,剩下的三種都是第一種的子類,所以其方法,都可以直接使用.
創(chuàng)建一個對話框一般需要下面幾個步驟
下面根據(jù)實例一起來看看具體用法
1、簡單文本對話框
定義一個Button為其添加點(diǎn)擊事件,從而啟動AlertDialog對話框,并添加監(jiān)聽事件
public void simpledialog1(View view){ AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對話框標(biāo)題 .setTitle("簡單文本對話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡單文本對話框 .setMessage("這是一個簡單文本對話框"); //設(shè)置兩個按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
2、列表項對話框
和上面的文本對話框不同,列表像是通過一個數(shù)組來顯示列表
public void simpledialog2(View view){ //列表項需要傳入一個數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對話框標(biāo)題 .setTitle("簡單列表項對話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡單列表項對話框 .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了" + items[which], Toast.LENGTH_SHORT).show(); } }); //設(shè)置兩個按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
3、單選項對話框
和列表項差不多,但是功能足足強(qiáng)了好多,因為傳入的參數(shù)可以為數(shù)組,也可以是Cursor的查詢結(jié)果集,還可以使ListAdapter
public void simpledialog3(View view){ //列表項需要傳入一個數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對話框標(biāo)題 .setTitle("簡單列表項對話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡單單選列表項對話框,1表示默認(rèn)選擇第二個 .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了" + items[which], Toast.LENGTH_SHORT).show(); } }); //設(shè)置兩個按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
4、多選項對話框
多選和單選差不多,就多了個Boolean的數(shù)組來控制初始選擇值
public void simpledialog4(View view){ //列表項需要傳入一個數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對話框標(biāo)題 .setTitle("簡單列表項對話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡單多選列表項對話框,boolean型變量表示初始選擇的位置 .setMultiChoiceItems(items, new boolean[]{false, false, false, true}, null); //設(shè)置兩個按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
另外還可以使用SetAdapter方法制作自定義列表項的對話框,或者使用SetView來制作自定義View的對話框。
以后的實例中會逐漸都應(yīng)用到的,希望大家繼續(xù)關(guān)注。
新聞熱點(diǎn)
疑難解答
圖片精選