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(); } }); }