package com.example.administrator.imooc;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;
import java.util.Calendar;
/*
* 这个代码是主要学习了三个dialog的使用,以后不会的时候回来看。*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button setDate,single,muti;
private AlertDialog alertDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
init();
}
public void init(){
setDate=(Button) findViewById(R.id.btn_setting);
single=(Button) findViewById(R.id.btn_single);
muti=(Button) findViewById(R.id.btn_muti);
setDate.setOnClickListener(this);
single.setOnClickListener(this);
muti.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_setting://设置日期
showDatePickerDialog();
break;
case R.id.btn_single://设置单选
showSingleListDialog();
break;
case R.id.btn_muti://设置多选
showMutiListDialog();
break;
}
}
public void showDatePickerDialog(){
Calendar c=Calendar.getInstance();
/*datepicker的参数*/
new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(MainActivity.this,"日期为:"+
year+"年"+(month+1)+"月"+(dayOfMonth)+"日",Toast.LENGTH_SHORT).show();
}
},c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH)).show();
}
public void showSingleListDialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("性别选择");
builder.setIcon(android.R.drawable.btn_star);
final String[] sex=getResources().getStringArray(R.array.sex);
//setSingleChoiceItems(数据资源id,表示默认被选中的item的下标 -1不存在默认选中,
// 点击单选item的点击事件)
builder.setSingleChoiceItems(R.array.sex, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/*toast的时候千万别忘了最后的show*/
Toast.makeText(MainActivity.this,"您的性别是:"+sex[which],Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
/*一定要写这一句不然前面的都是白写*/
builder.create().show();
}
public void showMutiListDialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("选择你的爱好");
builder.setIcon(android.R.drawable.btn_star);
final String[] loves=getResources().getStringArray(R.array.loves);//获取爱好的列表
final boolean[] checkedItems=new boolean[loves.length];
//setMultiChoiceItems(数据元的资源id,boolean类型数组 默认被选中 true选中 false未选中
builder.setMultiChoiceItems(R.array.loves, checkedItems,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which]=isChecked;
// Toast.makeText(MainActivity.this,"您的爱好是:"+loves[which],Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
/*因为有多个选项,所以通过一个列表把所有的选项都存起来,最后输出*/
public void onClick(DialogInterface dialog, int which) {
StringBuilder sb=new StringBuilder();
for(int i=0;i<checkedItems.length;i++){
if(checkedItems[i]){
sb.append(loves[i]);
sb.append("\n");
}
}
Toast.makeText(MainActivity.this,"您的爱好是:"+sb.toString(),Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
}
Android中AlertDialog等的使用
最新推荐文章于 2020-04-13 07:15:28 发布