1.提示对话框
public void dialogClick(View v){
//创建一个提示对话框的构造者
builder = new AlertDialog.Builder(this);
builder.setTitle("提示:");
builder.setMessage("你好啊!");
builder.setIcon(R.mipmap.ic_launcher);
//设置按扭和事件
//正面
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"有",Toast.LENGTH_SHORT).show();
}
});
//反面
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "没有", Toast.LENGTH_SHORT).show();
}
});
//中立
builder.setNeutralButton("中立", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"中立",Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
单列表对话框:
public void dialog2(View v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请择择平台");
final String[] items = {"android","iso","window"};
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,items[which],Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
public void dialog3(View v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("多列表对话框");
builder.setTitle("请择择平台");
final ArrayList<String> list = new ArrayList<String>();
final String[] items = {"android","iso","window"};
builder.setMultiChoiceItems(items,null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked){
list.add(items[which]);
}else {
list.remove(items[which]);
}
}
});
//正面
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,list.toString(),Toast.LENGTH_SHORT).show();
dialog.dismiss(); //关掉
}
});
//反面
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
list.clear();
dialog.dismiss();
}
});
builder.show();
}
String result = "";
public void dialog4(View v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请择择平台");
final String[] items = {"android","iso","window"};
builder.setSingleChoiceItems(items,0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result = items[which].toString();
Toast.makeText(MainActivity.this,"选中了"+items[which],Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
自定义对话框:
1.新建布局文件:
layou.xml 进行布局:
2.处理自定义对话框代码
public void dialog5(View v){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("自定义对话框");
// builder.setView(R.layout.layout);//api 21(android5.0)才支持
//实例化布局文件
final View view = getLayoutInflater().inflate(R.layout.layout,null);
builder.setView(view);
//正面
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText text1 = (EditText) view.findViewById(R.id.edit_username);
EditText text2 = (EditText) view.findViewById(R.id.edit_password);
String name = text1.getText().toString();
String password = text2.getText().toString();
Toast.makeText(MainActivity.this,name+"-------"+password,Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
//反面
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
}
});
builder.show();
}
TimePickerDialog:
1.创建一个类继承DialogPragment
2.重写onCreateDialog()方法,返回一个TimePickerDialog对象
/**
* Created by w7 on 2015/10/4.
*/
public class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
private TimePicker view;
private int hourOfDay;
private int minute;
private MainActivity mainActivity;
//得到 MainActivity类
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获取所依赖的activity
mainActivity = (MainActivity) getActivity();
}
//事件方法:当显示dialog 对话框时会自动调用
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//获取当前系统时间
final Calendar c = Calendar.getInstance();
hourOfDay = c.get(Calendar.HOUR_OF_DAY);
minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(), this, hourOfDay, minute,
true);
}
//对话框中完成按扭的处理事件
//设置用户选择的时间
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
this.view = view;
this.hourOfDay = hourOfDay;
this.minute = minute;
//调用mainactivity的方法将数据显示在文本显示框中
mainActivity.setTimeValue(hourOfDay,minute);
}
}
3.activity核心代码
public class MainActivity extends Activity {
private TextView textView_time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//得到文本显示框
textView_time = (TextView) findViewById(R.id.textView);
}
//将用户选择的数据赋给文本显示框,给TimePickerFragment类使用
public void setTimeValue(int hour,int minute){
textView_time.setText(hour+":"+minute);
}
//当点击按扭时,显示时间对话框
public void setTimeClick(View v){
DialogFragment dialogFragment = new TimePickerFragment();
//对话框从管理器中获取,果管理器中有,则直接取,如果没有,则创建后,再取 dialogFragment.show(getFragmentManager(),"timePicker");
}
日期设置:
1.创建日期对话框的类
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
private Main2Activity activity;
private Calendar c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = (Main2Activity) getActivity();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
c = Calendar.getInstance();
int year = c.get(YEAR);
int month = c.get(MONTH);
int day = c.get(DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(getActivity(),this,year,month,day);
return dialog;
}
//用户确认选择后触发
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//调用所依赖的activity的方法,将选择的数据显示到文本框中
activity.setDateValue(year,monthOfYear,dayOfMonth);
}
}
acitivity:
public class Main2Activity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
textView = (TextView) findViewById(R.id.textView2);
}
public void setDateValue(int year,int month,int day){
textView.setText(year+"年"+(month+1)+"月"+day+"日");
}
public void setdate(View v){
DialogFragment dialogFragment = new DatePickerFragment();
dialogFragment.show(getFragmentManager(),"date");
}