Android对话框的使用总结_对话框与列表应用实验总结-程序员宅基地

技术标签: UI  android  对话框的设计  

一.相关概念



一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能.


Android API 支持下列类型的对话框对象:

(一)警告对话框 AlertDialog: 一个可以有0到3个按钮, 一个单选框或复选框的列表的对话框. 警告对话框可以创建大多数的交互界面, 是推荐的类型.

(二)进度对话框 ProgressDialog: 显示一个进度环或者一个进度条. 由于它是AlertDialog的扩展, 所以它也支持按钮.

(三)日期选择对话框 DatePickerDialog: 让用户选择一个日期.

(四)时间选择对话框 TimePickerDialog: 让用户选择一个时间


二.AlertDialog的创建和使用



AlertDialog是Dialog的一个直接子类,使用AlertDialog,我们可以显示一个标题,最多3个按钮操作,以及一组选择框或者是自己定义的弹出框。
AlertDialog要使用Builder设计模式来创建对象 。

(一)Dialog的创建和使用


在时间应用中的对话框基本不用Dialog而是用它的子类。
这里简单使用一下Dialog,代码如下:

// 普通的对话框,普通的对话框功能很少,除非重写类
    public void bt1(View v) {
        // 创建对话框对象
        Dialog dialog = new Dialog(this);
        // 创建对话框内容  
         dialog.setTitle("对话框的标题");     
        // 显示对话框
        dialog.show();

    }


运行后显示结果:

Dialog1

可以看到有一个标题的对话框,而且这里没有设置内容的属性,Dialog的使用方法和功能都是很少的,不建议使用。

(二)比较正常的AlertDialog的创建和使用

代码设计:

// 警告对话框,需要用Builder方法创建
    public void bt2(View v) {
        // 这里的属性可以一直设置,因为每次设置后返回的是一个builder对象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        // 设置提示框的标题
        builder.setTitle("提示标题").
        // 设置提示框的图标
                setIcon(R.drawable.ic_launcher).
                // 设置要显示的信息
                setMessage("文本的提示信息:你妈喊你回家吃饭了!").
                // 设置确定按钮
                setPositiveButton("确定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "选择就确定哦", 0).show();

                    }
                }).

                // 设置取消按钮,null是什么都不做
                setNegativeButton("取消", null).
                // 设置退出按钮,在中间的按钮
                setNeutralButton("退出", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 退出程序
                        finish();

                    }
                });
        // 生产对话框
        AlertDialog alertDialog = builder.create();
        // 显示对话框
        alertDialog.show();

    }

程序运行后显示的结果:

AlertDialog2

这里如果点击取消,对话框消失,什么都没有做。
如果点击退出,会直接退出程序。
如果点击确定,会弹出一个土司,提示你。
这里可以根据用户的选择做出相应的行为。


(三)设计一个选择菜单样式的对话框

代码设计:

    //数据源
    String[] array = new String[] { "音乐", "体育", "舞蹈", "看书" };

    // 显示一个菜单的对话框选项,点击选择菜单后,菜单会消失

    // 匿名类去创建
    public void bt3(View v) {

        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        // 设置标题
        builder.setTitle("选择你最喜欢的课程").
        // 设置可选择的内容,并添加点击事件
                setItems(array, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // which代表的是选择的标签的序列号

                        Toast.makeText(MainActivity.this, "选择" + array[which],
                                0).show();

                    }
                }).
                // 产生对话框,并显示出来
                create().show();

    }

程序运行后显示的结果:

菜单对话框

设置菜单是builder的setItem方法来完成的。
点击某一个菜单选项后对话框会自动消失,所以这里设置按钮也是没有什么用处的。
这里还能监听点击菜单的事件,获取用户的选择内容。



(四)设置一个单选按钮菜单的对话框

其实这个对话框和上面的菜单对话框差不多,只是样式改变了,还有一点不同的是点击一个选项后对话框是不会消失的,所以必须要设置按钮,来使对话框消失。

代码设计:

// 单选按钮的对话框,选择一个按钮值后,
    // 对话框也是不会自动消失,需要自己关闭
    // 要设置按钮,点击按钮后对话框才会消失
    public void bt4(View v) {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        // 设置标题
        builder.setTitle("选择你最喜欢的课程").
        // 设置可选择的内容,并添加点击事件
        // 第一个参数是可以选择的单选框的内容
        // 第二个参数是默认选中的项
        // 第三个参数是点击选中的监听器
                setSingleChoiceItems(array, 0, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Toast.makeText(MainActivity.this, "选择" + array[which],
                                0).show();

                    }
                }).
                // 因为对话框不会自动消失,所以要添加按钮的必要
                // 设置确定按钮
                setPositiveButton("确定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "选择确定", 0).show();
                    }
                }).
                // 取消,什么都不做,对话框消失而已
                setNegativeButton("取消", null).
                // 产生对话框,并显示出来
                create().show();

    }


运行后的结果:

单选对话框

设置单选菜单是builder的setSingleChoiceItem方法来完成的。
这里要可以设置两个监听事件,一个是单选按钮某一个选项被选中时触发的,另一个是点击按钮时触发的事件。
程序中每次选中一个单选按钮都会弹出一个吐司,提示你选择的内容,点击确定后也会显示一个吐司。


(五)多选项的对话框设计

多选框的显示和单选的显示也是有点相似的,都是需要设置按钮来使对话框消失。
代码如下:

// 多选按钮的对话框
    // 对话框也是不会自动消失,需要自己关闭
    // 要设置按钮,点击按钮后对话框才会消失
    public void bt5(View v) {

        // 多选按钮的默认状态
        boolean[] checkedItems = { true, false, false, true };

        // 多选按钮选中后保存的数据
        final List<String> list = new ArrayList<String>();
        // 默认的数据
        list.add("音乐");
        list.add("看书");
        // 创建对话框的builder对象
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);

        // 设置标题
        builder.setTitle("选择你最喜欢的课程").
        // 设置可选择的内容,并添加点击事件
        // 第一个参数是可以选择的选框的内容
        // 第二个参数是一个布尔数组,如果是true代表的是默认选中
        // 第三个参数是点击选中的监听器
                setMultiChoiceItems(array, checkedItems,
                        new OnMultiChoiceClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which, boolean isChecked) {
                                // 这里无论某个选项是被选中后被取消都会触发该方法
                                // which代表的是选中的是多少游标值的选项
                                // isChecked是代表该选项是或否选中了
                                // 判断如果集合中有某个数据,就把他移除,否则就添加数据
                                // 注意这里数选择之后的状态
                                if (isChecked) {
                                    // 添加数据
                                    list.add(array[which]);
                                } else {
                                    // 移除数据
                                    list.remove(array[which]);
                                }

                            }
                        }).
                // 因为对话框不会自动消失,所以要添加按钮的必要
                // 设置确定按钮
                setPositiveButton("确定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你选中了" + list, 0)
                                .show();
                    }
                }).
                // 取消,什么都不做,对话框消失而已
                setNegativeButton("取消", null).
                // 产生对话框,并显示出来
                create().show();

    }


程序运行后的结果:

多选框

设置多选菜单是builder的setMultiChoiceItem方法来完成的。
这里要可以设置两个监听事件,一个是选项框的某一个选项的状态改变时触发的,另一个是点击按钮时触发的事件。
程序中每次改变选项的内容,保存数据的集合都会改变,点击确定后也会显示一个吐司,显示集合里面的内容。

选择全部内容后,确定,显示的结果:

多选框点击后结果


(六)使用适配器显示对话框


使用适配器显示对话框和显示菜单对话框类似,都是选中对应选项后,对话框自动消失,但是使用适配器可以显示很负责的界面。

// 使用适配器显示对话框-->builder的setAdapter方法
    // 这里选择一个选项后,对话框就会关闭,所以是不需要设置按钮的
    // 其实这里可以设置很复杂的适配器对象,但是实际应用中不会在对话框显示太复杂的布局
    public void bt6(View v) {

        // 创建ArrayAdapter适配器
        // android.R.layout.simple_list_item_1是Android系统里面的简单布局
        // 第三个参数是数据源
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, array);

        // 创建对话框对象
        new AlertDialog.Builder(this).
        // 设置标题
                setTitle("使用适配器显示数据").
                // 添加适配器,并为适配器添加点击事件
                setAdapter(adapter, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // which是选择的条目的游标值
                        Toast.makeText(MainActivity.this, "选择" + array[which],
                                0).show();
                    }
                }).
                // 产生并显示
                create().show();

    }


运行程序后显示的结果:

适配器

设置多选菜单是builder的setAdapter方法来完成的。
这里要设置一个监听事件,适配器的监听事件。
这里点击某一个选项后,对话框消失,并土司选中的内容。


(七)设计一个有输入框的对话框

// 设置一个有输入文本的对话框---->builder的setView方法
    // 输入数据后,对数据进行处理
    // 这里要设置按钮,才能对数据的数据进行处理
    public void bt7(View v) {

        // 创建一个EditText对象
        final EditText et = new EditText(this);

        // 创建对话框对象
        new AlertDialog.Builder(this).
        // 设置标题
                setTitle("有输入框的对话框").
                // 添加输入的文本框
                setView(et).
                // 添加确定按钮
                setPositiveButton("确定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 获取输入的字符
                        String in = et.getText().toString();
                        Toast.makeText(MainActivity.this, "输入;" + in, 0).show();
                    }
                }).setNegativeButton("取消", null).
                // 产生并显示
                create().show();

    }

运行后的结果:

有输入框的对话框

设置输入框是builder的setView方法来完成的。
这里要设置一个按钮监听事件。
这里点击确定按钮后,获取输入框的内容并土司出来。


(八)使用对话框内的控件控制对话框

这里使用对话框内的一个布局文件的按钮,来关闭对话框

    // 使用对话框内的控件来关闭对话框
    public void bt8(View v) {

        // 创建一个EditText对象
        final Button btn = new Button(this);
        // 给按钮设置文字
        btn.setText("关闭对话框");
        // 创建对话框对象
        final AlertDialog dialog = new AlertDialog.Builder(this).
        // 设置标题
                setTitle("通过按钮关闭对话框").
                // 添加输入的文本框
                setView(btn).
                // 产生
                create();

        // 设置对话框不可以关闭,一般情况下对话框是失去焦点后自动消失的
        // 但是加 了.setCancelable(false),对话框就不会消失,除非手动退出
        dialog.setCancelable(false);

        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // 点击后关闭对话框,两种方法都可以
                 dialog.cancel();
                //dialog.dismiss();
            }
        });

        // 显示
        dialog.show();

        //给对话框设置一个监听时间,对话框退出前会执行
        dialog.setOnDismissListener(new OnDismissListener() {

            @Override
            public void onDismiss(DialogInterface dialog) {
                // 只要关闭都会调用
                Toast.makeText(MainActivity.this, "关闭", Toast.LENGTH_SHORT)
                        .show();
            }
        });

    }

运行结果:

关闭对话框

这里设置了dialog.setCancelable(false);的属性,代表了对话框不能随着焦点的失去而消失对话框,要收到关闭对话框,要么设置确定和取消按钮,要么在对话框布局中设置能够关闭对话框的控件;




(九)AlertDialog的详细属性

对话框的全部属性表现,如图所示:
Dialog属性图


这里分上、中、下三部分。
区域一是标题相关
区域二是主体相关
区域三是按钮相关


其中任何部分都可以不设置,
但是有一点要注意的是主体内容只能有一种,比如:设置了SetMessage不能再设置SetAdapter或SetView。因为设置了也不会显示的。

1.区域1那里就是定义弹出框的头部信息

包括标题名或者是一个图标。
(1)setTitle : 为对话框设置标题
(2)setIcon : 为对话框设置图标

2.区域2那里是AlertDialog对话框的content部分

在这里我们可以设置一些message信息,或者是定义一组选择框,还可以定义我们自己的布局弹出框。
(1)setMessage: 为对话框设置内容,如果设置了其他内容,那么Message不要设置,否者只显示Message。
(2)setView: 给对话框设置自定义View
setItems: 设置对话框要显示的一个list,一般用于显示几个命令时
//items是传入一个字符串数组,或者是R文件中的数组
(3)setSingleChoiceItems: 用来设置对话框显示一系列的单选按钮
(4)setMultiChoiceItems: 用来设置对话框显示一系列的复选框

3.区域3那里使我们的Action Buttons部分

这里我们可以定义我们的操作按钮。
在AlertDialog中,定义按钮都是通过 setXXXButton 方法来完成,其中一共有3种不同的Action Buttons供我们选择:
(1)setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
这是一个相当于OK、确定操作的按钮.
(2)setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
这是一个相当于取消操作的按钮。

(3)setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
这个是相当于一个忽略操作的按钮。

触发相关按钮都的行为都是我们程序员自己定的,比如你可以设置点击确定后关闭页面,也可以设置点击取消后关闭页面。但是我们设计的时候还是要按照大部分人的阅读习惯来设定。

4.监听事件的说明

在AlertDialog的各种设置中,都充斥着DialogInterface.OnClickListener,比如按钮,内容区的items,单选按钮等,只有多选按钮是用了另外一个监听
DialogInterface.OnMultiChoiceClickListener。

(1)单选按钮的监听
public void onClick(DialogInterface dialog, int which);
//which代表items,单选按钮中的序号

(2)多选按钮的监听
public void onClick(DialogInterface dialog, int which, boolean isChecked);
//which代表items,单选按钮中的序号
//isChecked代表当前点击的序号是否被勾选

(3)Adapter的监听
AlertDialog还支持ListAdapter的子类,我们可以传入各种ListAdapter的子类,来显示复杂的列表,当然直接使用 setView 也可以办到
public Builder setAdapter(final ListAdapter adapter, final
OnClickListener listener)

三.ProgressDialog进度对话框


ProgressDialog是AlertDialog类的子类,可以为一个未定义进度的任务显示一个旋转轮形状的进度动画,或者为一个指定进度的任务显示一个进度条。它的用处非常广泛,在每次用户操作一个延迟的任务时,我们都必须以进度对话框的形式告诉用户,否者用户并不知道操作已经开始,可能会多次操作同一个任务,并有可能导致异常发生。

(一)构造方法和常用方法

1.构造方法需要传入一个上下文
public ProgressDialog(Context context)

2.给定一个样式,带进度条和不带进度条的样式
public void setProgressStyle(int style) //可选值
//STYLE_SPINNER 默认 圆形,没有进度条的样式
//STYLE_HORIZONTAL 给定进度条的样式

3.设置进度最大值,需要给定STYLE_HORIZONTAL
public void setMax(int max)

4.是否能用返回键关闭 true可以关闭,false不能关闭
public void setCancelable(boolean flag)

5.设置一个消息
public void setMessage(CharSequence message)

6.判断Dialog是否显示
public boolean isShowing()

7.关闭对话框
public void dismiss()

8.ProgressDialog从AlertDialog中继承的常用方法setIcon和setTitile

9.虽然ProgressDialog可以设置Button,但是我们一般都不会去使用它

(二)进度对话框的设计的使用

1.圆形进度条对话框

// 显示圆形的进度框
    public void bt1(View v) {
        // 创建进度条的对话框
        ProgressDialog dialog = new ProgressDialog(this);
        // 设置进度条的样式,选择圆形或条状
        // 这里这圆形的
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        // 设置标题
        dialog.setTitle("文件下载");
        // 设置文本信息
        dialog.setMessage("正在下载。。。");
        // 设置是否能用后退键出对话框
        // 选择false就代表不能
        // 如果设置为false,程序可能退出不了
        dialog.setCancelable(true);
        // 显示对话框
        dialog.show();
    }

程序运行后的结果:

圆形进度条对话框

这里点击进度对话框的其他地方,对话框就消失了。因为默认情况,对话框失去焦点就会消失。

2.条形对话框

// 显示设置水平的进度框
    public void bt2(View v) {
        // 创建进度条的对话框
        final ProgressDialog dialog = new ProgressDialog(this);
        // 设置进度条的样式,选择圆形或条状
        // 这里这圆形的
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        // 设置标题
        dialog.setTitle("文件下载");
        // 设置文本信息
        dialog.setMessage("正在下载。。。");
        // 设置是否能用后退键出对话框
        // 选择false就代表不能
        // 如果设置为false,程序可能退出不了
        dialog.setCancelable(false);
        // 显示对话框
        dialog.show();

        // 这里新建一个线程来,跟新进度和关闭页面
        new Thread(new Runnable() {

            @Override
            public void run() {
                // 获取进度值的当前的值
                int index = 0;
                // 跟新进度
                while (index < dialog.getMax()) {
                    index++;
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    // 设置进度的值
                    dialog.setProgress(index);

                }

                // 完成任务后,退出对话框
                dialog.cancel();

            }
        }).start();

    }

运行结果:
水平进度条

这个进度对话框是没有办法取消的,因为设置了:dialog.setCancelable(false);
只能等到文件下载完成后对话框自动消失。这个设置在实际应用中也是会有用到的,比如复制文件,不能随便打断。本示例中,进度的跟新需要用子线程来更新,进度条的更新可以直接在子线程中实现,而其他布局的跟新是不能在子线程中直接更新的。要使用runOnUIThread();方法来更新主线程的界面,



四.时间和日期选择器对话框

(一)时间和日期对话框的方法

DatePickerDialog与TimePickerDialog都继承于AlertDialog,基本方法和我们前面讲的DatePicker和TimePicker组件一样,只是需要调用Dialog的show方法来显示。在构造方法里需要传入回调监听

1.用户改变时间后的监听

public interface OnTimeChangedListener { void onTimeChanged(TimePicker view, int hourOfDay, int minute);
}

2.用户改变日期后的监听

public interface OnDateChangedListener { void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth);
}

(二)时间对话框的使用

// 显示时间的对话框
    public void btn1(View v) {
        // 第一个参数是上下文
        // 第二个参数是监听时间选择后的事件
        // 后面两个数是默认是时间
        // 后一个是代表是否显示时间的格式是24小时制的
        TimePickerDialog dialog = new TimePickerDialog(this,
                new OnTimeSetListener() {

                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                            int minute) {
                        Toast.makeText(MainActivity.this,
                                hourOfDay + "时" + minute + "分", 0).show();

                    }
                }, 21, 8, true);
//显示标题
        dialog.setTitle("选择你要设定的时间");
        // 显示时间的对话框
        dialog.show();

    }


运行后显示的结果:

时间选择

这是时间对话框的选择按钮,其中也可以设置很多属性。
这里点击完成后会弹出一个选择的时间的土司。
如图所示:

时间

(三)日期对话框的使用

// 显示日期的对话框
    public void btn2(View v) {
        // 第一个参数是上下文
        // 第二个参数是监听时间选择后的事件
        // 后面三个数是默认是日期数
        DatePickerDialog dialog = new DatePickerDialog(this,
                new OnDateSetListener() {
                    // 日期选择器上的月份是从0开始的

                    @Override
                    public void onDateSet(DatePicker view, int year,
                            int monthOfYear, int dayOfMonth) {
                        Toast.makeText(
                                MainActivity.this,
                                year + "年" + (monthOfYear + 1) + "月"
                                        + dayOfMonth + "日", 0).show();

                    }
                }, 2016, 11, 13);
        // 显示时间的对话框
        dialog.show();

    }

点击运行后,显示结果:

日期对话框

上面是日期对话框的默认画面,也是挺好看的,实际中也可以根据实际需要对它的页面样式进行修改。

点击完成后显示的结果:

日期结果


总结:
以上就是Android对话框大部分控件的基本使用。
对于有些对话框选择之后对话框会自动消失,就没有必要设置ActionButton了
但是有些对话框是不会自动消失的,就需要设置ActionButton或在页面布局中有可以关掉对话框的控件。
对于有些界面没有设计得很好看,这个需要自己花时间去慢慢琢磨,这里只是介绍它们的用法和一些属性。还有它们的简单效果。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wenzhi20102321/article/details/52818351

智能推荐

hdu 1229 还是A+B(水)-程序员宅基地

文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...

http客户端Feign——日志配置_feign 日志设置-程序员宅基地

文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置

[转载]将容器管理的持久性 Bean 用于面向服务的体系结构-程序员宅基地

文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!

基础java练习题(递归)_java 递归例题-程序员宅基地

文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题

面向对象程序设计(荣誉)实验一 String_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。

算法设计与问题求解/西安交通大学本科课程MOOC/C_算法设计与问题求解西安交通大学-程序员宅基地

文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学

随便推点

[Vue warn]: Computed property “totalPrice“ was assigned to but it has no setter._computed property "totalprice" was assigned to but-程序员宅基地

文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.

basic1003-我要通过!13行搞定:也许是全网最奇葩解法_basic 1003 case 1-程序员宅基地

文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1

服务器浏览war文件,详解将Web项目War包部署到Tomcat服务器基本步骤-程序员宅基地

文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.

python组成三位无重复数字_python组合无重复三位数的实例-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出

ElementUl中的el-table怎样吧0和1改变为男和女_elementui table 性别-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别

java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下-程序员宅基地

文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下

推荐文章

热门文章

相关标签