网站怎么做图片转换,外贸常用网站有哪些,大型网站制作教程,文创产品设计就业前景首先看各种样式的对话框: 我们看到#xff0c;Dialog有很多的子类实现#xff0c;所以我们要定义一个对话框#xff0c;使用其子类来实例化一个即可#xff0c;而不要直接使用Dialog这个父类来构造。 二、AlertDialog 今天我们重点要来了解的就是AlertDialog对话框#xf… 首先看各种样式的对话框: 我们看到Dialog有很多的子类实现所以我们要定义一个对话框使用其子类来实例化一个即可而不要直接使用Dialog这个父类来构造。 二、AlertDialog 今天我们重点要来了解的就是AlertDialog对话框我们看到AlertDialog是Dialog的一个直接子类。 使用AlertDialog我们可以显示一个标题最多3个按钮操作以及一组选择框或者是自己定义的弹出框。 这里借用android的官方文档提供的一个图来看看AlertDialog框的组成 ①区域1那里就是定义弹出框的头部信息包括标题名或者是一个图标。 ②区域2那里是AlertDialog对话框的content部分在这里我们可以设置一些message信息或者是定义一组选择框还可以定义我们自己的布局弹出框。 ③区域3那里使我们的Action Buttons部分这里我们可以定义我们的操作按钮。 说到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)
这个是相当于一个忽略操作的按钮。 我们每一种action buttons最多只能出现一个即弹出对话框最多只能出现一个PositiveButton。 接下来我们通过一个一个的具体实例来看看我们常用的几种AlertDialog对话框。 1.弹出一个警告框并有三个按钮可选择 我们来看看代码部分 button.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){// 通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象AlertDialog.Builder builder new AlertDialog.Builder(MainActivity.this);// 设置Title的图标builder.setIcon(R.drawable.ic_launcher);// 设置Title的内容builder.setTitle(弹出警告框);// 设置Content来显示一个信息builder.setMessage(确定删除吗);// 设置一个PositiveButtonbuilder.setPositiveButton(确定, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){Toast.makeText(MainActivity.this, positive: which, Toast.LENGTH_SHORT).show();}});// 设置一个NegativeButtonbuilder.setNegativeButton(取消, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){Toast.makeText(MainActivity.this, negative: which, Toast.LENGTH_SHORT).show();}});// 设置一个NeutralButtonbuilder.setNeutralButton(忽略, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){Toast.makeText(MainActivity.this, neutral: which, Toast.LENGTH_SHORT).show();}});// 显示出该对话框builder.show();}}); 我们如果要创建一个AlertDialog对话框需要使用AlertDialog的一个内部类即AlertDialog.Builder来构建一个AlertDialog的对话框然后通过setXX方法来设置我们想要显示的内容即可。 我们看到我们一共设置了3个action buttons每一个button都为其绑定了一个 DialogInterface.OnClickListener() 的监听事件然后在里面通过Toast吐司对话框(这个在后面随笔中会讲解)来弹出一下我们的一些信息which方法表示的是action button所代表的int值 positive: -1
negative: -2
neutral: -3 我们可以知道which-1就表示点击的是确定按钮-2表示点击的是取消按钮-3表示点击的是忽略按钮。 2.下拉列表弹出框 关键代码如下 button2.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View arg0){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(){Overridepublic void onClick(DialogInterface dialog, int which){Toast.makeText(MainActivity.this, 选择的城市为 cities[which], Toast.LENGTH_SHORT).show();}});builder.show();}}); 在这里我们通过 setItems(CharSequence[] items, DialogInterface.OnClickListener listener) 方法来设置我们的一个下拉列表框。注意因为下拉列表框或者是下拉多选框这些都是显示在Content中的所以message和下拉列表框这些是不能够同时存在的。 我们也可以给其绑定一个DialogInterface.OnClickListener监听器当选中一个选项时对话框就会消失掉。这里的which代表的是下拉列表的每个选项的索引通过这个我们可以轻松得到用户选中的是哪一个选项。 3.弹出一个下拉单选框 button3.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){AlertDialog.Builder builder new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(请选择性别);final String[] sex {男, 女, 未知性别};// 设置一个单项选择下拉框/*** 第一个参数指定我们要显示的一组下拉单选框的数据集合* 第二个参数代表索引指定默认哪一个单选框被勾选上1表示默认‘女‘ 会被勾选上* 第三个参数给每一个单选项绑定一个监听器*/builder.setSingleChoiceItems(sex, 1, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){Toast.makeText(MainActivity.this, 性别为 sex[which], Toast.LENGTH_SHORT).show();}});builder.setPositiveButton(确定, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){}});builder.setNegativeButton(取消, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){}});builder.show();}}); 注意在弹出下拉单选框时当我们选中一个选项对话框是不会消失的我们需要点击action button才能让对话框消失。 4.弹出一个下拉多选框 button4.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){AlertDialog.Builder builder new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(爱好);final String[] hobbies {篮球, 足球, 网球, 斯诺克};// 设置一个单项选择下拉框/*** 第一个参数指定我们要显示的一组下拉多选框的数据集合* 第二个参数代表哪几个选项被选择如果是null则表示一个都不选择如果希望指定哪一个多选选项框被选择* 需要传递一个boolean[]数组进去其长度要和第一个参数的长度相同例如 {true, false, false, true};* 第三个参数给每一个多选项绑定一个监听器*/builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener(){StringBuffer sb new StringBuffer(100);Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked){if(isChecked){sb.append(hobbies[which] , );}Toast.makeText(MainActivity.this, 爱好为 sb.toString(), Toast.LENGTH_SHORT).show();}});builder.setPositiveButton(确定, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){}});builder.setNegativeButton(取消, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){}});builder.show();}}); 我们看到在设置下拉多选框时使用的是setMultiChoiceItems方法其各个参数的含义在上面代码中已经阐述了。 同样对于下拉多选框当我们选中其中一个选项时对话框是不会消失的只有点击了action button才会消失。 5.自定义弹出对话框 对于自定义弹出对话框我们就需要自己指定一个自定义的布局文件了我们就给出一个最简单的输入用户名和密码的两个EditText dialog.xml ?xml version1.0 encodingutf-8?
RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent EditText android:idid/usernameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintusername/EditTextandroid:idid/passwordandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_belowid/usernameandroid:hintpasswordandroid:inputTypetextPassword//RelativeLayout 关键代码 button5.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){AlertDialog.Builder builder new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle(请输入用户名和密码);// 通过LayoutInflater来加载一个xml的布局文件作为一个View对象View view LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null);// 设置我们自己定义的布局文件作为弹出框的Contentbuilder.setView(view);final EditText username (EditText)view.findViewById(R.id.username);final EditText password (EditText)view.findViewById(R.id.password);builder.setPositiveButton(确定, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){String a username.getText().toString().trim();String b password.getText().toString().trim();// 将输入的用户名和密码打印出来Toast.makeText(MainActivity.this, 用户名: a , 密码: b, Toast.LENGTH_SHORT).show();} });builder.setNegativeButton(取消, new DialogInterface.OnClickListener(){Overridepublic void onClick(DialogInterface dialog, int which){}});builder.show();}}); 我们看到通过自定义弹出框我们首先需要写一个xml的布局文件然后在里面定义我们的布局我们不需要在布局文件里定义Button按钮可以通过 AlertDialog.Builder 来设置 action buttons。 通过 View view LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null); 我们可以将我们的布局文件加载进来得到一个View对象然后通过 AlertDialog.Builder 的setView方法来设置我们的自定义弹出框 总结到这里基本上将AlertDialog详细的讲解完了本篇随笔主要讲解了Dialog弹出框的基本概念以及详细讲解了AlertDialog这个弹出框包括定义一个基本的弹出警告框、下拉列表框、下拉多选框等等。后续的随笔将会继续记录学习Android的点点滴滴。