第二章 吸引你的眼球—UI编程(7)
2015-01-04 09:29
190 查看
2.3 简单明了的消息提示框(Toast)和对话框(Dialog)
2.3.1Toast提示
很多时候,我们需要对用户提供一些提示信息。比如,当用户登入应用程序时,提示用户“应用程序需要更新”;当用户在输入框输入文本时,提示用户“最多能输入30个字符”。这些需求,Toast轻松就能搞定!Toast是Android提供的“快显讯息”类。Toast使用起来非常简单,只需要简单的代码就能实现。Toast.makeText(Context context, CharSequence text,int duration).show(); |
Toast.makeText(Context context,int resId,int duration).show(); |
我们在一个叫ToastActivity的Activity中写一个简单的Toast提示来看看它的效果吧。
Toast.makeText(ToastActivity.this, "使用Toast提示", Toast.LENGTH_LONG).show(); |
图2-20 Toast的使用
2.3.2Dialog提示
Toast的使用无疑是很方便的,但是有些时候,Toast并不能满足我们的需求。因为可能我们并不仅仅满足于给用户提示一些信息,而是希望给用户提示一些信息之后,用户可以有更多自己的选择。比如,当用户点击“退出”按钮的时候,我们给用户提示“是否真的选择退出”,因为有可能“退出”按钮是用户不小心点击到的,当用户再点击“确定”时,则真的退出应用;如果用户点击“取消”则返回应用。这样的话,Toast就不能满足于这样的需求了,于是我们的Dialog对话框就呼之欲出了。在Android中,我们要实现对话框可以使用AlertDialog.Builder类,也可以自定义对话框,下面我们分别通过一个例子来对它们加以说明。
1)使用AlertDialog.Builder类创建对话框
在使用这种方式创建对话框之前,我们先来了解一下AlertDialog.Builder中几个常用的方法。
setTitile(); // 给对话框设置title setIcon(); // 给对话框设置图标 setMessage(); // 给对话框设置提示信息 setPositiveButton(); // 给对话框添加“YES”按钮 setNeutralButton(); // 给对话框添加“NO”按钮 |
new AlertDialog.Builder(this).setTitle("提示信息"). setMessage("确定退出吗"). setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }). setNegativeButton("取消", null). show(); |
图2-21AlertDialog的使用
虽然我们没有对“取消”按钮添加事件监听,但在这个对话框中,当我们点击“取消”按钮时,对话框一样会被关闭,这是因为setNegativeButton()默认就会关闭对话框。
2)自定义对话框
很多时候,我们根据需求需要自己来设计对话框。下面,我们也以一个例子来看看自定义对话框是如何实现的。
首先,我们新建一个布局文件dialog.xml,并在其中定义好对话框:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/bg_pic" android:layout_width="260dp" android:layout_height="150dp" android:layout_centerHorizontal="true" android:background="@drawable/dialog_bg"/> <ImageView android:id="@+id/close_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/bg_pic" android:background="@drawable/close"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自定义Dialog" android:textColor="@android:color/black" android:layout_centerInParent="true"/> </RelativeLayout> |
// import略 public class MyDialog extends Dialog{ private LayoutInflater factory; public MyDialog(Activity act) { super(act); factory = LayoutInflater.from(act); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(factory.inflate(R.layout.dialog, null)); } } |
new MyDialog(this).show(); |
图2-22 自定义Dialog的使用 好像并没有达到我们想要的效果,上面多出来了一块,而且外面也有边框,这些都不是我们想要的。这是因为这些都是Dialog默认的格式,如果我们不需要的话,我们需要为它添加我们自己的样式,我们在values目录下新建一个styles.xml样式文件,输入内容如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="mydialog" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@android:color/transparent</item> </style> </resources> |
public MyDialog(Activity act) { super(act,R.style.mydialog); factory = LayoutInflater.from(act); } |
图2-23 自定义Dialog中使用样式--------------------------------------------试着放个广告 现在没工作 要生存 没办法平安陆金所 隶属于平安集团的p2p平台年投资回报率7%-9% 是替代银行理财的首选个人经验教训 推荐投资安鑫或者有担保的彩虹项目不要投资安e 那个几乎无法转让 想提前提现非常困难注册链接 http://affiliate.lufax.com/action/36XBU用此链接注册 你我都会有几十元的额外现金奖励-------------------------------------------- 同样的,我们也可以在MyDialog中监听Diglog中组件的各种事件进行相应的处理,例如,当点击“X”图标时关闭该Dialog:
ImageView closeView = (ImageView) findViewById(R.id.close_view); closeView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MyDialog.this.dismiss(); } }); |
相关文章推荐
- 第二章 吸引你的眼球—UI编程(4)
- 第二章 吸引你的眼球—UI编程(6)
- 第二章 吸引你的眼球—UI编程(5)
- 第二章 吸引你的眼球—UI编程(8)
- 第二章 吸引你的眼球—UI编程(1)
- 第二章 吸引你的眼球—UI编程(2)
- 第二章 吸引你的眼球—UI编程(3)
- 优秀网页设计:35个吸引眼球的精美作品集网站
- 优秀网页设计:35个吸引眼球的精美作品集网站
- 推荐25个吸引眼球的创意界面设计
- 分享20个吸引眼球的高品质免费PSD网站模板
- 时尚设计风格最吸引眼球
- 25个吸引眼球的广告设计
- [英语阅读]荷兰女子“高跟鞋赛跑”吸引眼球
- 好的创意才够吸引眼球,同时也很赚大钱,你拥有好创意吗
- 25个吸引眼球的广告设计
- 棋牌游戏开发独具创意吸引用户的“眼球”
- 游戏大厅 从基础开始(3)——最吸引眼球的部分 客户端与服务器的连接
- 12款吸引眼球的免费英文涂鸦艺术字体下载
- 日公司美女大腿上做广告吸引眼球