1、Dialog的创建
private void intDialog() {
//创建Dialog对象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//创建Dialog的标题
builder.setTitle("退出界面");
//创建标题图标
builder.setIcon(R.id.icon);
//设置退出内容文本
builder.setMessage("您确定退出界面吗?");
//添加Dialog的按钮,参数为1、按键内容,2、按键的监听,如没有操作就写null
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"已经退出",Toast.LENGTH_LONG).show();
}
});
//启动buider
dialog=builder.create();
showDialog();
}
public void showDialog(){
//如果dialog不为空,而不是正在运行,就启动。注意要创建个全局dialog方便跨方法使用
if(dialog!=null&&!dialog.isShowing()){
dialog.show();
}
}
2、按返回键是触发的方法
//当按返回键时显示dialog
public void onBackPressed() {
intDialog();
}
3、普通列表的Dialog
A、先绑定接口,方便操作 B、创建列表名称列表
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
btn02.setOnClickListener(this);
<string-array name="color_name">
<item>红色</item>
<item>绿色</item>
<item>蓝色</item>
</string-array>
c、创建普通列表Dialog对象
public void showCommonListDialog(){
//创建Dialog对象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//创建Dialog的标题
builder.setTitle("退出界面");
//创建标题图标
builder.setIcon(R.id.icon);
//填充Dialog。。一、列表的id,二、创建监听对象
builder.setItems(R.array.color_name, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case 0:
tvshow.setTextColor(Color.RED);break;
case 1:
tvshow.setTextColor(Color.GREEN);break;
case 2:
tvshow.setTextColor(Color.BLUE);break;
}
}
});
builder.create();
builder.show();
}
4、图文列表的的用法——先创建对应的文本列表
<string-array name="set_name">
<item>Wifi设置</item>
<item>蓝牙</item>
<item>红外线</item>
<item>未知名</item>
</string-array>
<string-array name="set_image">
<item>image01</item>
<item>image02</item>
<item>image03</item>
<item>image04</item>
</string-array>
5、图文列表的的用法——创建图文列表方法
public void showImageDialog(){
//创建Dialog对象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//创建Dialog的标题
builder.setTitle("退出界面");
//创建标题图标
builder.setIcon(R.id.icon);
//获得文本资源
String[] set_name=getResources().getStringArray(R.array.set_name);
//获得图片资源
String[] set_image=getResources().getStringArray(R.array.set_image);
//创建List和Map集合存放数据
List<Map<String,Object>> date=new ArrayList<Map<String,Object>>();
//遍历数组存放资源进去
for(int i=0;i<set_name.length;i++){
//注意map放在循环里面里面
Map<String,Object> map=new HashMap<String, Object>();
map.put("setname",set_name[i]);
//有三个参数,1、这图片的名称 2、文件名,3、包名
int imageId=getResources().getIdentifier(set_image[i],"drawable",getPackageName());
map.put("setimage",imageId);
date.add(map);
}
/*
有五个参数
1、this
2、资源组名称
3、图文布局xml文件
4、资源组一一对应的map的k名
5、列表布局文件的里面的id名
*/
SimpleAdapter adapter=new SimpleAdapter(this,date,R.layout.layout,
new String[]{"setname","setimage"},
new int[]{R.id.tv01,R.id.image01});
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which){
case 0:
Toast.makeText(MainActivity.this, "已经打开Wifi", Toast.LENGTH_SHORT).show();
case 1:
Toast.makeText(MainActivity.this, "已经打开蓝牙", Toast.LENGTH_SHORT).show();
case 2:
Toast.makeText(MainActivity.this, "已经打开红外线", Toast.LENGTH_SHORT).show();
case 3:
Toast.makeText(MainActivity.this, "未知打开", Toast.LENGTH_SHORT).show();
}
}
});
builder.create().show();
6、单选Dialog的用法
public void showsigleDialog(){
//创建Dialog对象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//创建Dialog的标题
builder.setTitle("选择字体");
//创建标题图标
builder.setIcon(R.id.icon);
final String[] fortnum=getResources().getStringArray(R.array.fortnum);
//创建单选对象
builder.setSingleChoiceItems(R.array.fortsize, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case 0:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
case 1:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
case 2:tvshow.setTextSize(Float.parseFloat(fortnum[which]));break;
}
dialog.dismiss();
}
});
dialog=builder.create();
dialog.show();
}
7,日期dilog的用法
public void showDateAlter(){
//获取当前时间
Calendar calendar=Calendar.getInstance();
year=calendar.get(calendar.YEAR);
monthOfYear=calendar.get(calendar.MONTH);
dayOfMonth=calendar.get(calendar.DAY_OF_MONTH);
/*调用DatePickerDialog对象
有5个参数,,1、MainActivity.this
2、监听选择的日期并且实现吐司。
3、4、5、调入当前日期
*/
DatePickerDialog dialog=new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//setTitle(year+"年"+monthOfYear+"月"+dayOfMonth+"日");
text=year+"年"+monthOfYear+"月"+dayOfMonth+"日";
Toast.makeText(MainActivity.this,"你选择的日期是:"+text,Toast.LENGTH_LONG).show();
}
},year,monthOfYear,dayOfMonth);
dialog.show();