基于地图的短信追踪小练习(5)对话框之item的添加
来源:互联网 发布:mac程序删除 编辑:程序博客网 时间:2024/05/20 03:05
我们基于一个“”朋友列表“”的活动,点击界面中的添加按钮,这个时候,在中间弹出一个小框,可以输入新朋友的名字和电话号码,这就是对话框了。
首先,我们采用的是自定义的对话框:
1.整个布局有一个背景图片(这是最外层的布局,描述的是整个对话框,这个对话框的方向应该是垂直的)
2.然后是两个地位等价,垂直排列的布局
3.上一条中两个布局都是水平的,由提示输入的textview和输入框edittext构成
4.第三个布局,包裹了两个button,对应确定和取消,可以使用背景图片设置样式
接下来我们要在主界面中设置点击事件和点击事件里的逻辑(启动设置对话框)
LayoutInflater inflater = getLayoutInflater();View layout = inflater.inflate(R.layout.dialog_add_friend,null);ad = new AlertDialog.Builder(FriendListActivity.this).setView(layout).show();建立layout的时候,我们第二个参数设为null,直接加载整个布局
建立对话框对象的时候,我们setView,直接设置布局
还有一些可选方法,比如:
setTitle()
setPositiveButton()
setNegativeButton()
它们都返回的是this类型(即调用它们的对象的类型),所以可以直接火车式调用。
我们不用这个设置,都采用我们自己的图片,所以不采用这些方法,接下来我们自己设置确定和取消的点击事件。
发现空指针异常,很高兴,因为这是一种简单的异常,异常之后瞬间明白过来,虽然安卓所有的布局文件的id都是能找到不报编译错的,但其实仅仅是找到,没有加载相应布局的话,它是空的,就会报空指针异常,所以代码由原来改成改版:
原来(异常):
//点击叉叉 button3 = (Button)findViewById(R.id.btn_dialog_close); button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ad.dismiss(); } });
改版:
//点击叉叉 button3 = (Button)layout.findViewById(R.id.btn_dialog_close); button3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ad.dismiss(); } });
好了,这就是我们的取消的逻辑了,用对话框对象效用dismiss方法。
好,另一个,对于确定的逻辑:
显然我们要获取到edittext的输入内容,并且用来设置一个新的朋友对象,放进list。
放下list和实体对象的改变不表,来看核心代码:
//点击勾勾 /* */ button2 = (Button)layout.findViewById(R.id.btn_dialog_ok); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String name = ((EditText)layout.findViewById(R.id.txt_friend_name)).getText().toString(); String num = ((EditText)layout.findViewById(R.id.txt_friend_number)).getText().toString(); Friends fri = new Friends(name,num); ListAll.friendslist.add(fri); ad.dismiss(); } });
点击勾勾之后,我们成功在list中增加了一个相应信息朋友
0 0
- 基于地图的短信追踪小练习(5)对话框之item的添加
- 基于地图的短信追踪小练习(6)对话框之item的删除
- 基于地图的短信追踪小练习(3)短信的接收与发送
- 基于地图的短信追踪小练习(1)百度地图的初创建
- 基于地图的短信追踪小练习(2)百度地图定位到自己的位置
- 基于地图的短信追踪小练习(4)主界面布局的一些内容
- 基于地图的短信追踪小练习(7)经纬度的设置与显示
- 基于地图的短信追踪小练习(8)地图覆盖物点击事件与活动间数据的传递
- 对话框(1)之对话框的建立与如何添加窗口左上角的小ICON图标
- 给基于对话框的应用程序添加快捷键
- 基于对话框的应用程序添加启动画面
- 基于对话框的工程如何添加CReBar
- 基于对话框的应用程序添加启动画面
- 基于对话框的MFC - 添加菜单
- MFC编程--添加基于对话框的菜单栏
- 基于过程渲染的小地图shader
- 基于过程渲染的小地图shader
- vs2008为基于对话框的工程添加 子对话框
- #include <sys/socket.h>找不到头文件
- ”360宣布停止个人云盘服务“回顾360的发展历程
- Android对话框-AlertDialog
- ACM文件读入debug
- linux网络编程之socket(五):tcp流协议产生的粘包问题和解决方案
- 基于地图的短信追踪小练习(5)对话框之item的添加
- MySQL语法复习--储存过程与储存函数
- 嵌入式常见笔试题总结
- pcl一些简单方法的使用
- 阿里云ECS用tutumcloud/haproxy做virtual host
- 第八周作业——三色球问题
- 浅拷贝和深拷贝
- SurfaceView
- MySQL语法复习--触发器与事件