Android Studio常見對話框(普通對話框、單選對話框、多選對話框、進度條對話框、消息對話框、自定義對話框)


Android Studio常見對話框

1.普通對話框

2.單選對話框

3.多選對話框

4.進度條對話框

5.消息對話框

6.自定義對話框

1.普通對話框

//1.創建普通對話框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AlertDialog dialog = new AlertDialog.Builder(this)
                .setTitle("dialog對話框")    //設置標題
                .setMessage("是否確定退出?")  //設置提醒的信息
                .setIcon(R.drawable.log)    //設置圖標
                .setPositiveButton("確定",null) //添加確定按鈕
                .setNegativeButton("取消",null) //添加取消按鈕
                .create();
        dialog.show();
          }
}

效果:


2.單選對話框

//2.創建單選對話框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
			AlertDialog dialog = new AlertDialog.Builder(this)
                .setIcon(R.drawable.log)                   //添加圖標
                .setTitle("請選擇你的性別^_^")
                .setPositiveButton("確定", null) //添加確定按鈕
                .setNegativeButton("取消", null)  //添加取消按鈕
                .setSingleChoiceItems(new String[]{"男", "女"}, -1, //負數表示沒有默認選擇;0默認選擇"男",1默認選擇"女"
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        })
                .create();
        dialog.show();
    }
}

效果:


3.多選對話框

//3.創建多選對話框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    AlertDialog alertDialog = new AlertDialog.Builder(this)
            .setIcon(R.drawable.log)                           //設置圖標
            .setTitle("請選擇你感興趣的類型^_^")                  //設置標題
            .setPositiveButton("選好啦",null)       //設置確定按鈕
            .setNegativeButton("下次再說吧",null)    //設置取消按鈕
            .setMultiChoiceItems(new String[]{"蘿莉","御姐","正太","少女","女裝大佬","萌妹","軟妹子","JK","ACG","二次元"},null,null)
            .create();
        alertDialog.show();
    }
}

效果:


4.進度條對話框

// 4.創建進度條對話框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ProgressDialog progressDialog = new ProgressDialog(this); //構建對話框
        progressDialog.setTitle("進度條對話框");
        progressDialog.setIcon(R.drawable.log);
        progressDialog.setMessage("正在下載,請稍后^_^");
        //設置水平進度條
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  //條形進度條
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);     //圓形進度條
        progressDialog.show();
    }
}

條形效果:

圓形效果


5.消息對話框

//5.消息對話框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          Toast.makeText(this,"HrlloWorld",Toast.LENGTH_SHORT).show();  //通知時間短
          Toast.makeText(this,"HelloWorld",Toast.LENGTH_LONG).show();   //通知時間長
    }
}

效果:


6.自定義對話框

  • 創建自定義對話框樣式,這里以mydialog.xml為例;
  • 創建MyDialog類;
  • MainActivity調用MyDialog類

創建mydialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView

        android:id="@+id/tv_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="提示"
        android:background="#E619E3"
        android:textSize="28sp"/>
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:text="你真的要離開嗎"
        android:textColor="#ff0400"
        android:background="@drawable/log3"
        android:textSize="28sp"/>
    <LinearLayout
        android:id="@+id/ll_1"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="50sp"
        android:gravity="center"
        android:background="#D3DF26">
        <Button
            android:id="@+id/btn_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="殘忍離開"
            android:textSize="24sp"
            android:background="#06F18B"
            android:layout_marginRight="30dp"
            android:onClick="okclick"/>
        <Button
            android:id="@+id/btn_2"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textSize="28sp"
            android:text="馬上進入"
            android:background="#8284E1"
           android:layout_marginLeft="30dp"
            android:onClick="canclick"/>
    </LinearLayout>

</LinearLayout>

創建MyDialog類

package com.krisantisce.androiddialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;

public class MyDialog extends Dialog {    //繼承父類
    private String dialogName;
    public MyDialog(@NonNull Context context, String dialogName) {
        super(context);
        this.dialogName = dialogName;

    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);  // 去除標題
        setContentView(R.layout.mydialog);              // 引入自定義對話框布局
        TextView textView = findViewById(R.id.tv_2);
        Button button_no = findViewById(R.id.btn_1);
        Button button_ok = findViewById(R.id.btn_2);
        //設置自定義對話框顯示內容
        textView.setText(dialogName);
        //給按鈕設置點擊事件
        button_ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        button_no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 把對話框關閉
                dismiss();
            }
        });
    }
}

MainActivity調用MyDialog類

package com.krisantisce.androiddialog;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MyDialog myDialog = new MyDialog(this,null);
        myDialog.show();

    }
}

效果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM