基于地图的短信追踪小练习(5)对话框之item的添加

我们基于一个“”朋友列表“”的活动,点击界面中的添加按钮,这个时候,在中间弹出一个小框,可以输入新朋友的名字和电话号码,这就是对话框了。

首先,我们采用的是自定义的对话框:

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值