AlertDialog建立6種對話方塊的用法

來源:互聯網
上載者:User

AlertDialog建立6種對話方塊的用法

AlertDialog產生的對話方塊可分為4個地區:表徵圖區,標題區,內容區,按鈕區

結構

AlertDialog對話方塊的使用:

1,建立AlertDialog.Builder對象
2,調用Builder對象的setTitle()設定標題,setIcon設定表徵圖
3,調用Builder對象的相關方法設定內容,AlertDialog提供如下六中設定指定對話方塊的內容:

setMessage();設定簡單文字框的內容
setItems();設定簡單列表的內容,數組
setSingleChoiceItems();;設定單選列表的內容,內容參數可以是數組Cursor,ListAdapter
setMultiChoiceItems();設定多選清單項目的內容,內容參數可以是數組,Cursor
setAdapter();設定內容,內容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter
setView();設定內容,參數是自訂的View
4,調用Builder對象的setPositiveButton()和 setNegativeButton()設定按鈕和監聽器
5,調用Builder對象的create()方法建立AlertDialog對象,再調用AlertDialog對象的show()方法顯示對話方塊

 

總之:調用Builder對象設定表徵圖,標題,內容,按鈕,在create(),show()

代碼模板:

 

new AlertDialog.Builder(this)// 設定對話方塊標題.setTitle("簡單對話方塊")// 設定表徵圖.setIcon(R.drawable.tools)                       //設定內容,可代替.setMessage("對話方塊的測試內容\n第二行內容").setPositiveButton("確定",listener).setNegativeButton("取消",listener).create().show();
acitivity_main.xml

 

 

                                            


MainActivity.java

 

 

 

package com.hust.alertdialogtest;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.content.DialogInterface.OnMultiChoiceClickListener;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.TableLayout;import android.widget.TextView;/*AlertDialog對話方塊的使用: * AlertDialog對話方塊有四個地區:表徵圖區,標題區,內容區,按鈕區 * 1,建立AlertDialog.Builder對象 * 2,調用Builder對象的setTitle()設定標題,setIcon設定表徵圖 * 3,調用Builder對象的相關方法設定內容 *        setMessage();設定簡單文字框的內容 *        setItems();設定簡單列表的內容,數組 *        setSingleChoiceItems();;設定單選列表的內容,內容參數可以是數組,Cursor,ListAdapter *        setMultiChoiceItems();設定多選清單項目的內容,內容參數可以是數組,Cursor *        setAdapter();設定內容,內容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter *        setView();設定內容,參數是自訂的View * 4,調用Builder對象的setPositiveButton()和    setNegativeButton()設定按鈕和監聽器 * 5,調用Builder對象的create()方法建立AlertDialog對象,再調用AlertDialog對象的show()方法顯示對話方塊 *     *         *  總之:調用Builder對象設定表徵圖,標題,內容,按鈕,在create(),show()       * */public class MainActivity extends Activity {   TextView show;   String[] items=new String[]{   "湖北省","福建省","貴州省","四川省"   };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        show=(TextView) findViewById(R.id.textView1);    }      /*簡單文本對話方塊:builder.setMessage()設定內容*/      public void simple(View v){    AlertDialog.Builder  builder=new AlertDialog.Builder(this);    builder.setTitle("簡單對話方塊");    builder.setIcon(R.drawable.tools);    builder.setMessage("這是簡單文本對話方塊\n第二行內容");        //為builder對象添加確定按鈕,不過這裡嵌套了一個函數    setPositiveButton(builder);    //為builder對象添加取消按鈕    builder=setNegativeButton(builder);        //builder建立對話方塊對象AlertDialog    AlertDialog simpledialog=builder.create();    simpledialog.show();    }    /*簡單列表對話方塊(數組對話方塊):builder.setItems()設定內容*/    public void simpleList(View v){    AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("數組列表對話方塊");    builder.setIcon(R.drawable.tools);    builder.setItems(items, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubshow.setText("你單擊了 "+items[which]);}        });       setPositiveButton(builder);    builder=setNegativeButton(builder);        AlertDialog simplelistdialog=builder.create();    simplelistdialog.show();    }    /*單選清單項目對話方塊:builder.setSingleChoiceItems()設定內容,內容參數可以是數組,Cursor,ListAdapter*/    public void singleChoice(View v){    AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("單選清單項目對話方塊");    builder.setIcon(R.drawable.tools);    //設定單選清單項目,預設選中第二項    builder.setSingleChoiceItems(items,1, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubshow.setText("你單擊了 "+items[which]);}        });       setPositiveButton(builder);    builder=setNegativeButton(builder);        AlertDialog simplechoicedialog=builder.create();    simplechoicedialog.show();    }    /*     *      *多選清單項目對話方塊: builder.setMultiChoiceItems()設定內容,參數可以是數組,Cursor資料庫返回結果集     *      * AlertDialog.Builder.setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, OnMultiChoiceClickListener listener)*/    public void multiChoice(View v){     AlertDialog.Builder builder=new AlertDialog.Builder(this);    builder.setTitle("多選清單項目對話方塊");    builder.setIcon(R.drawable.tools);    //設定單多選清單項目,預設選中第二項,第四項    builder.setMultiChoiceItems(items,new boolean[]{false,true,false,true},new OnMultiChoiceClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {// TODO Auto-generated method stub//添加處理方法}        });           setPositiveButton(builder);    builder=setNegativeButton(builder);        AlertDialog simplechoicedialog=builder.create();    simplechoicedialog.show();    }    /*自訂Adapter對話方塊:builder.setAdapter設定內容,內容是ListAdapter,常用的BaseAdapter,SimpleAdapter,ArrayAdapter*/        public void customList(View v){    AlertDialog.Builder  builder=new AlertDialog.Builder(this);    builder.setTitle("自訂Adapter對話方塊");    builder.setIcon(R.drawable.tools);    builder.setAdapter(new ArrayAdapter(this,R.layout.array_item,items), new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubshow.setText("你單擊了 "+items[which]);}        });        //為builder對象添加確定按鈕,不過這裡嵌套了一個函數    setPositiveButton(builder);    //為builder對象添加取消按鈕    builder=setNegativeButton(builder);        //builder建立對話方塊對象AlertDialog    AlertDialog adapterdialog=builder.create();    adapterdialog.show();        }    /*自訂View對話方塊:builder.setView()設定View*/    public void customView(View v){    //擷取xml布局檔案對象    TableLayout loginform=(TableLayout) getLayoutInflater().inflate(R.layout.login, null);        AlertDialog.Builder  builder=new AlertDialog.Builder(this);    builder.setTitle("自訂View對話方塊");    builder.setIcon(R.drawable.tools);    //設定對話方塊顯示的View組件    builder.setView(loginform);        //為builder對象添加確定按鈕,不過這裡嵌套了一個函數    setPositiveButton(builder);    //為builder對象添加取消按鈕    builder=setNegativeButton(builder);        //builder建立對話方塊對象AlertDialog    AlertDialog viewdialog=builder.create();    viewdialog.show();            }    //返回對象是原來的Builder對象    private  AlertDialog.Builder  setPositiveButton(AlertDialog.Builder builder) {// TODO Auto-generated method stub return builder.setPositiveButton("確定", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubshow.setText("單擊了【確定】按鈕!");}  });}         //返回對象是Builder對象    private  AlertDialog.Builder  setNegativeButton(AlertDialog.Builder builder) {// TODO Auto-generated method stub return builder.setNegativeButton("取消", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubshow.setText("單擊了【取消】按鈕!");}  });}@Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}

 

 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.