Dialog的幾種類型

1、普通dialog

new AlertDialog.Builder(DialogActivity.this)
        .setTitle("刪除")
        .setMessage("確認刪除?")
        .setNegativeButton("取消",null)
        .setPositiveButton("確認",null)
        .setCancelable(false)
        .show();





2、有輸入的dialog

final EditText editText = new EditText(getApplication());
editText.setTextColor(Color.BLACK);
new AlertDialog.Builder(DialogActivity.this)
        .setTitle("請輸入")
        .setView(editText)
        .setNegativeButton("取消",null)
        .setPositiveButton("確認", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, editText.getText().toString(),Toast.LENGTH_SHORT).show();
            }
        })
        .show();


3、單選的dialog

String[] names = {"小魚","德瑪","石頭","狗頭","諾克"};

new AlertDialog.Builder(DialogActivity.this)
        .setTitle("請選擇你喜歡的人物")
        .setSingleChoiceItems(names, 0 , new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                selectName = names[which];
            }
        })
        .setNegativeButton("取消",null)
        .setPositiveButton("確認", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this,selectName,Toast.LENGTH_SHORT).show();
            }
        })
        .setCancelable(false)
        .show();













4、多選的dialog

new AlertDialog.Builder(DialogActivity.this)
        .setTitle("請選擇你喜歡的人物")
        .setMultiChoiceItems(names, null, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                if (isChecked) {
                    selectName += names[which];
                }
            }
        })
        .setNegativeButton("取消",null)
        .setPositiveButton("確認", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this,selectName,Toast.LENGTH_SHORT).show();
                selectName = "";
            }
        })
        .setCancelable(false)
        .show();













5、列表類dialog

new AlertDialog.Builder(DialogActivity.this)
        .setTitle("請選擇")
        .setItems(names, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this,names[which].toString(),Toast.LENGTH_SHORT).show();
            }
        })
        .setCancelable(false)
        .show();














6、多個按鈕的dialog

new AlertDialog.Builder(DialogActivity.this)
        .setTitle("是否更新")
        .setMessage("檢測到新版本,是否更新")
        .setNegativeButton("取消",null)
        .setPositiveButton("確認",null)
        .setNeutralButton("稍後再說",null)
        .show();













7、完全自定義的dialog

final AlertDialog diyDialog = new AlertDialog.Builder(DialogActivity.this).create();
diyDialog.setView(new EditText(getApplication()));
diyDialog.show();
Window window = diyDialog.getWindow();
window.setContentView(R.layout.diydialog_layout);
Button button = (Button) window.findViewById(R.id.login);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getApplication(),"登錄成功",Toast.LENGTH_SHORT).show();
        diyDialog.dismiss();
    }
});


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:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="請先登錄"
        android:textSize="30sp"
        android:id="@+id/title"
        android:gravity="center"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:textSize="20sp"
        android:hint="請輸入賬號"
        android:gravity="center"
        android:id="@+id/num"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:textSize="20sp"
        android:hint="請輸入密碼"
        android:gravity="center"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登錄"
        android:textSize="30sp"
        android:id="@+id/login"
        android:layout_gravity="center"
        />
</LinearLayout>













8、時間設置:TimePickerDialog

private TimePickerDialog dialog;
View data;
TextView time;
String first,second,first;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tuisong);
    data = findViewById(R.id.time);
    time = (TextView) findViewById(R.id.time2);
    Calendar calendar = Calendar.getInstance();
    hour = calendar.get(Calendar.HOUR_OF_DAY);
    
    minute = calendar.get(Calendar.MINUTE);
    
    dialog = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            first = hourOfDay + ":" + minute +"";
        }
    },hour,minute,true);<true 表示當前爲24小時制>
    
    data.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.show();
            time.setText("您選擇時間爲:"+first+"-"+second);
        }
    });
}









9、日期設置:DatePickerDialog

private DatePickerDialog data;
private int year,month,day;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    birthday = findViewById(R.id.birthday_user);
    user_birthday = (TextView) findViewById(R.id.birthday);
    Calendar calendar = Calendar.getInstance();
    year = calendar.get(Calendar.YEAR);
    month = calendar.get(Calendar.MONTH);
    day = calendar.get(Calendar.DAY_OF_MONTH);
    data = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            String text = year + "年" + (monthOfYear+1) + "月" + dayOfMonth + "日";
            user_birthday.setText(text);
            dayContent = text;
            editor.putString("day",sexContent);
            editor.commit();
        }
    },year,month,day);
    birthday.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            data.show();
        }
    });
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章