基于地图的短信追踪小练习(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
原创粉丝点击