Android中AlertDialog的使用

來源:互聯網
上載者:User

Android中AlertDialog的使用
AlertDialog的簡單使用

  AlertDialog的使用是依賴於Activity的。它不同於Toast,Toast是不依賴於Activity的,Toast只起到一種提示作用,並無法進行互動。而AlertDialog是可以進行互動的,不僅可以起到提示作用,還可以用來進行選擇等,下面我們來看看它的用法。
  
  我們通過一個按鍵的點擊來觸發AlertDialog:

        //首先建立一個AlertDialog.Builder的對象。        AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this);        //設定圖片        builder.setIcon(R.mipmap.ic_launcher);        //設定題目        builder.setTitle(Title);        //設定內容        builder.setMessage(This is a Dialog!);        //設定按鍵NegativeButton(在最左邊)        builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Toast.makeText(getApplicationContext(), NegativeButton, Toast.LENGTH_SHORT).show();            }        });        //設定按鍵NeutralButton(在中間)        builder.setNeutralButton(Neutral, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Toast.makeText(getApplicationContext(), NeutralButton, Toast.LENGTH_SHORT).show();            }        });        //設定按鍵PositiveButton(在最右邊)        builder.setPositiveButton(OK, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Toast.makeText(getApplicationContext(), PositiveButton, Toast.LENGTH_SHORT).show();            }        });        //建立AlertDialog 對象。        AlertDialog dialog =builder.create();        //調用show()方法顯示。        dialog.show();

選擇型的AlertDialog

  
  通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊後直接退出AlertDialog。

        //首先建立一個AlertDialog.Builder的對象。        AlertDialog.Builder builder =new AlertDialog.Builder(DialogActivity.this);        //設定題目        builder.setTitle(Title);        //設定選擇的內容:第一個參數是資料, 第二個參數是點擊事件。        builder.setItems(mData, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                Toast.makeText(getApplicationContext(), 點擊第 + (i + 1) + 資料, Toast.LENGTH_SHORT).show();            }        });        AlertDialog dialog =builder.create();        dialog.show();

資料設定為:

private String[] mData={This is Item1, This is Item2, This is Item3, This is Item4};

單選擇的AlertDialog

  通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊定義的NegativeButton,NeutralButton或者PositiveButton按鈕後退出,我們可以通過在NeutralButton或者PositiveButton按鈕中定義相關操作提交資料,NegativeButton則是不對資料做處理直接退出。注意:單選擇的AlertDialog只能選擇一項。
  

        AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this);        builder.setTitle(Title);        //設定單選則的選項        builder.setSingleChoiceItems(mSexs, 0, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int which) {                mSex = mSexs[which];                Toast.makeText(getApplicationContext(), 您選擇的性別是 + mSexs[which], Toast.LENGTH_SHORT).show();            }        });        //取消按鈕,點擊後不對資料做處理。        builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {            }        });        //確定按鈕,點擊後將資料顯示在EditText中。        builder.setNeutralButton(OK, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                mEditTextSex.setText(mSex);            }        });        builder.show();

補充資料定義:

    private String[] mSexs={男, 女, 其他};    private String mSex;

多選擇的AlertDialog

  通過彈出AlertDialog,在AlertDialog中選擇想要的內容,點擊定義的NegativeButton,NeutralButton或者PositiveButton按鈕後退出,我們可以通過在NeutralButton或者PositiveButton按鈕中定義相關操作提交資料,NegativeButton則是不對資料做處理直接退出。注意:多選擇的AlertDialog可以選擇多項。
  

AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this);        builder.setTitle(Title);        //設定多選擇項。        builder.setMultiChoiceItems(mHobby, mIsCheckedManager, new DialogInterface.OnMultiChoiceClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int which, boolean isChecked) {                mIsCheckedManager[which] = isChecked;            }        });        builder.setNegativeButton(Cancle, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {            }        });        builder.setNeutralButton(OK, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int which) {                hobby = new StringBuffer();                for (int i=0; i

補充資料定義:

 private String[] mHobby={唱歌, 學習, 讀書, 打籃球, 跑步, 運動}; private boolean[] mIsCheckedManager=new boolean[mHobby.length]; private StringBuffer hobby;

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.