iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Mobile Development

android studio 30天初學筆記系列 第 21

Android Studio初學筆記-Day21-AlertDialog(2)

  • 分享至 

  • xImage
  •  

接續上一篇AlertDialog的基礎介紹,今天來接著介紹更多AlertDialog的用法。
從上一篇的成果看來功能上算是蠻齊全,不過在按鈕的位置配置上我個人覺得有些奇怪,所以今天就來講可以自己配置自己想要版面的方法給跟我有同感的人把上一篇的內容稍作加工。
首先在res/layout加入一個xml檔,設計一個自己想要的Alertdialog,這裡可以自己加入自己想要的按鈕並設計位置,或者如同上一篇用AlertDialog所提供的,這裡就示範加入自訂的按鈕以及如何設定自訂按鈕的功能。如下
https://ithelp.ithome.com.tw/upload/images/20210908/20139136BUXr0pW0jb.png

程式碼

  public void secondAlert(View v){
        LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
        final View dialog2 = inflater.inflate(R.layout.alertdialog1,null);
        AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
        builder2.setView(dialog2);
        Button bt1 = (Button)dialog2.findViewById(R.id.bt1);
        Button bt2 = (Button)dialog2.findViewById(R.id.bt2);
        AlertDialog ad1 = builder2.create();
        ad1.setCancelable(true);    //設定返回鍵是否可以關掉AlertDialog
        ad1.show();
        bt1.setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v){
                Toast.makeText(MainActivity.this,"取消",Toast.LENGTH_SHORT).show();
                ad1.dismiss();
            }
        });
        bt2.setOnClickListener(new Button.OnClickListener(){
            @Override
            public void onClick(View v){
                Toast.makeText(MainActivity.this,"確定",Toast.LENGTH_SHORT).show();
            }
        });
    }

先透過前兩行
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
final View dialog2 = inflater.inflate(R.layout.alertdialog1,null);
將剛設計好的Layout創成物件,類似於之前RecyclerView時的用法,接著寫一個Builder與上一章相同,不過這次Builder的設定久沒那麼複雜,只要負責用setView()把剛才的創好的layout物件引入進來。這次還加入個新東西就是AlertDialog ad1 = builder2.create(); 創建了AlertDialog的物件,在這裡主要可以幫我們控制畫面是否在按鈕後消失,但其實也能做到setCancelable(true)和show()的功能。如果需要則加入dismiss()來達到關閉AlertDialog效果。

成果

https://ithelp.ithome.com.tw/upload/images/20210908/20139136ft2bJwHG3t.pnghttps://ithelp.ithome.com.tw/upload/images/20210908/20139136yp0WkrZkp3.png
AlertDialog就講到這邊,謝謝大家~/images/emoticon/emoticon41.gif


上一篇
Android Studio初學筆記-Day20-AlertDialog(1)
下一篇
Android Studio初學筆記-Day22-ToolBar
系列文
android studio 30天初學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言