您的位置:首页 > 移动开发 > Android开发

Android基础——对话框集合

2016-07-26 15:42 357 查看
只是为了方便查阅。。。记性不好


一.dialog

public void showDialogOne(View view) {
// 工厂设计模式. 得到创建对话框的工厂
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置标题
builder.setTitle("警告,请三思:");
// 设置描述信息
builder.setMessage("若练此功,必先自宫,是否继续?");
// 设置确定和取消按钮//显示“是”
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "啊....,即便自宫,也不一定成功", Toast.LENGTH_SHORT)
.show();
}
});
//设置取消按钮//显示“否”
builder.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "如果不自宫,一定不成功", Toast.LENGTH_SHORT)
.show();
}
});
// AlertDialog dialog = builder.create(); //创建对话框
// dialog.show();
builder.show(); //上面两句合并成一句
}



Two

/**
* 单选对话框
*
* @param view
*/
public void showDialogThree(View view) {
// 工厂设计模式. 得到创建对话框的工厂
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//设置标题
builder.setTitle("请选择您的性别");
//设置选项
final String[] items = {"男", "女", "中间"};
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//为什么用getApplicationContext??????!!!!!!
Toast.makeText(getApplicationContext(), "您的性别为:" + items[which], Toast.LENGTH_SHORT).show();
dialog.dismiss();//点完之后就关掉
}
});
builder.show();

}



Three

/**
* 多选对话框
*
* @param view
*/
public void showDialogFour(View view) {
// 工厂设计模式. 得到创建对话框的工厂
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//设置标题
builder.setTitle("请选择您爱吃的水果");
//设置选项
final String[] items = {"苹果", "梨", "香蕉", "菠萝", "煎饼果子"};
final boolean[] checked = {true, false, true, false, true};
builder.setMultiChoiceItems(items, checked, new DialogInterface.OnMultiChoiceClickListener() {
@Override
//whick代表哪些条目被选中,第三个代表是否被勾取
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(getApplicationContext(), items[which] + isChecked, Toast.LENGTH_SHORT).show();
//checked = {"haha","gaga"};不能这么写,因为前面写了final,数组不能进行修改!!!
checked[which] = isChecked;//但是可以修改数组中的元素!!!
}
});
builder.setPositiveButton("提交", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < checked.length; i++) {
if (checked[i]) {
sb.append(items[i] + " ");
}
}
Toast.makeText(getApplicationContext(), "您喜欢的水果有:" + sb.toString(), Toast.LENGTH_SHORT).show();
}
});
builder.show();

}



Four

/**
* 进度对话框,不带具体进度的对话框
*
* @param view
*/
public void showDialogFive(View view) {
final ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("请稍后:");
pd.setMessage("正在拼命加载中....");
pd.show();

new Thread() {
public void run() {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
pd.dismiss();
}

;
}.start();

}



Five

/**
* 带具体进度的对话框
*
* @param view
*/
public void ShowDialogSix(View view) {
final ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("请稍后:");
//设置进度样式
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("正在拼命加载中....");
//设置进度条的最大值
pd.setMax(100);
pd.show();

new Thread() {
public void run() {
try {
for (int i = 0; i <= 100; i++) {
Thread.sleep(300); //更新进度条要用子线程,如果跟显示的线程放一起
//那么显示的也会卡着,就显示不出来了
pd.setProgress(i); //每隔300ms就加1
}
} catch (InterruptedException e) {
e.printStackTrace();
}
pd.dismiss();
}

;
}.start();
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: