对话框代码android,Android Dialog对话框实例代码讲解

Dialog的基本方法

//创建Dialog

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

//设置标题图标

builder.setIcon(R.drawable.ic_launcher);

//设置标题

builder.setTitle("这是一个对话框");

//设置信息

builder.setMessage("是否要跳转?");

//确定按钮

setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)

//取消按钮

setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)

//忽略

setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)

//显示对话框

show();

系统样式

1.下拉列表

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("选择一个城市");

//下拉列表的数据源

final String[] cities = {"北京", "上海", "广州", "深圳", "杭州"};

builder.setItems(cities, new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

Toast.makeText(MainActivity.this, "你选择的城市为:" + cities[which], Toast.LENGTH_SHORT).show();

}

});

builder.show();

2.单选框列表

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("请选择性别");

final String[] sex = {"男", "女"};

//第二个参数指定默认哪个单选框被勾中

builder.setSingleChoiceItems(sex, 1, new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

Toast.makeText(MainActivity.this, "性别为:" + sex[which], Toast.LENGTH_SHORT).show();

}

});

builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

}

});

builder.show();

3.多选框列表

String str;

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("选择你想看的电视剧");

final String[] hobbies = {"廷禧攻略", "扶摇", "香蜜沉沉烬如霜", "如懿传"};

//第二个参数代表哪几个选项被选择,需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,如果null表示都不选

builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener(){

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked){

if(isChecked){

str.append(hobbies[which] + ", ");

}

Toast.makeText(MainActivity.this, "选择的是:" + str.toString(), Toast.LENGTH_SHORT).show();

}

});

builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){

@Override

public void onClick(DialogInterface dialog, int which){

}

});

builder.show();

4.等待对话框

ProgressDialog waitingDialog= new ProgressDialog(MainActivity.this);

waitingDialog.setTitle("等待加载中,请稍后...");

waitingDialog.setMessage("等待中...");

waitingDialog.setIndeterminate(true);//采用不确定式的进度条

waitingDialog.setCancelable(false);//点击外部不取消对话框

waitingDialog.show();

5.进度条对话框

int MAXPD = 100;

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

progressDialog.setProgress(0);//设置默认值

progressDialog.setTitle("正在下载");

progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//进度条样式

progressDialog.setMax(MAXPD);//设置最大值

progressDialog.show();

自定义Dialog

1.继承Dialog

public class CustomDialog extends Dialog {

//标题

protected TextView hintTv;

//左边按钮

protected Button doubleLeftBtn;

//右边按钮

protected Button doubleRightBtn;

//输入框

public EditText editText;

public CustomDialog(Context context) {

super(context, R.style.CustomDialogStyle);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.setCancelable(false); // 是否可以撤销

setContentView(R.layout.dialog_custom);

hintTv = findViewById(R.id.tv_common_dialog_hint);

doubleLeftBtn = findViewById(R.id.btn_common_dialog_double_left);

doubleRightBtn = findViewById(R.id.btn_common_dialog_double_right);

editText = findViewById(R.id.et_common_dialog);

}

//置右键文字和点击事件

public void setRightButton(String rightStr, View.OnClickListener clickListener) {

doubleRightBtn.setOnClickListener(clickListener);

doubleRightBtn.setText(rightStr);

}

//设置左键文字和点击事件

public void setLeftButton(String leftStr, View.OnClickListener clickListener) {

doubleLeftBtn.setOnClickListener(clickListener);

doubleLeftBtn.setText(leftStr);

}

//设置提示内容

public void setHintText(String str) {

hintTv.setText(str);

hintTv.setVisibility(View.VISIBLE);

}

//给两个按钮 设置文字

public void setBtnText(String leftStr, String rightStr) {

doubleLeftBtn.setText(leftStr);

doubleRightBtn.setText(rightStr);

}

}

2.自定义Style

@null

@color/transparent

true

true

false

@null

true

@color/white

@color/white

3.自定义布局

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/ll_common_dialog_layout"

android:layout_width="500dp"

android:layout_height="250dp"

android:layout_margin="5dp"

android:background="@drawable/background_info"

android:orientation="vertical"

android:gravity="center">

android:id="@+id/tv_common_dialog_hint"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:textColor="@color/white"

android:textSize="27sp"/>

android:id="@+id/et_common_dialog"

android:layout_width="300dp"

android:layout_height="wrap_content"

android:textColor="@color/back"

android:inputType="text|textNoSuggestions"

tools:ignore="LabelFor"

android:hint="请输入密码"/>

android:id="@+id/ll_common_dialog_double"

android:layout_width="360dp"

android:layout_height="60dp"

android:layout_margin="20dp"

android:orientation="horizontal">

android:id="@+id/btn_common_dialog_double_left"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@drawable/btnselector"

android:gravity="center"

android:textColor="@color/white"

android:textSize="27dp"/>

android:id="@+id/btn_common_dialog_double_right"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@drawable/btnselector"

android:gravity="center"

android:textColor="@color/white"

android:textSize="27dp"/>

4.ipad隐藏底部虚拟按键

//弹出dialog时隐藏底部虚拟按键

dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {

@Override

public void onSystemUiVisibilityChange(int visibility) {

int uiOptions =View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

if (Build.VERSION.SDK_INT >= 19) {

uiOptions |= 0x00001000;

} else {

uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;

}

dialog.getWindow().getDecorView().setSystemUiVisibility(uiOptions);

}

});

5.使用自定义Dialog

CustomDialog dialog = new CustomDialog(this);

dialog.setHintText("请输入密码");

dialog.setLeftButton("取消", new View.OnClickListener() {

@Override

public void onClick(View v) {

dialog.dismiss();

}

});

dialog.setRightButton("确定", new View.OnClickListener() {

@Override

public void onClick(View v) {

}

});

dialog.show();

总结

以上所述是小编给大家介绍的Android Dialog对话框实例代码讲解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值