android之通过Button的监听器往adapter中添加数据时出错

本来源代码如下: List model; //自定义的一个List数据,存储的是自定义的类 LunchListAdapter adapter;//自定义的一个ListView的适配器 ……//省略class onSavaLis implements OnClickListener{ //Button s

大家好,又见面了,我是全栈君。

本来源代码如下:

	List<Restaurant> model; //自定义的一个List数据,存储的是自定义的类                                    	LunchListAdapter adapter;//自定义的一个ListView的适配器
	......//省略
class onSavaLis implements OnClickListener{			//Button save的监听器,点击之后往model里面添加数据
		Restaurant r = new Restaurant();//②		
		@Override
		public void onClick(View v) {
			r.setName(name.getText().toString());
			r.setAddress(addr.getText().toString());
			switch (types.getCheckedRadioButtonId()) {
			case R.id.take_out:
				r.setType(TAKE_OUT);
				break;
			case R.id.sit_down:
				r.setType(SIT_DOWN);
				break;
			case R.id.delivery:
				r.setType(DELIVERY);
				break;
			}
			model.add(r);//①
		}
	}

问题是,点击存储之后,在如果①处采用的是adapter.add(r);

那么ListView里面展示出来的item全都是最后存进去的那个,而且在点击item之后,从model里面输出来的内容也都是一样的,

如果①处采用的是model.add(r);

那么ListView里面展示出来的item是正确的,刚好是你存储的内容的顺序,但是点击item之后,从model里面读取出来的内容跟上面一样,全都是最后存进去的数据,

 

想来想去也没怎么弄明白,最后我把②那行代码放到了onClick里面定义,这样之后不管①出用哪种方式,显示和输出的结果都是正确的.

暂时想到的就是在②处定义的r可能model里面之前加入的数据都覆盖了,但是还是有点糊涂,先记下这么个印象,望高手赐教.

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121431.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vb语言与测量程序设计吕翠华主编课后答案_c程序设计第五版答案第四章

    vb语言与测量程序设计吕翠华主编课后答案_c程序设计第五版答案第四章第一节数据类型VB中提供了以下11中基本的数据类型:一、数值型二、字符串三、日期型1.界面设计2.代码 1 PrivateSubCommand1_Click() 2 Timer1.Enabled=True 3 EndSub 4 5 PrivateSu…

    2022年10月6日
    3
  • 世界十大量化交易模型_如何防止量化模型被窃取

    世界十大量化交易模型_如何防止量化模型被窃取01、股票多空策略股票多空策略(EquityLong/Short),即买一些股票,通过融券的方式去卖空一些股票,然后再用一些股指期货进行对冲。这是国际上主流的HedgeFund所用的量化策略,据知名数据商Eurekahedge的统计数据,在国际对冲基金中长期占比第一(一直超过30%)。比如2011年获得美国量化基金业评比第一名的贝莱德“32Cap全球对冲基金产品”使用的就是经典的多空策略…

    2022年4月19日
    117
  • navicat2021 7 mac激活码【2021免费激活】

    (navicat2021 7 mac激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsaWN…

    2022年3月20日
    46
  • tomcat7配置教程_Tomcat热部署

    tomcat7配置教程_Tomcat热部署1.Tomcat依赖于JDK,需要提前安装好JDK,参考另外一篇文章:JAVA安装部署2.到官网下载Tomcat7,解压到相关路径即可。Tomcat官网3.从Tomcat7之后的版本都不需要配置环境变量,在bin目录下,查看starup.bat:意思是如果bin目录下面存在catalina.bat文件,就可以访问tomcat页面了,代表安装成功了。PS:如果没…

    2025年6月13日
    2
  • jmeter测试并发200_jmeter并发测试实例

    jmeter测试并发200_jmeter并发测试实例相对并发和绝对并发相对并发:指在一个时间段内发生的事情 绝对并发:指在同一时刻发生的事情一:相对并发在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动2000个线程,其对应的相对并发为1000(线程数/启动时间)二:绝对并发一般使用同步定时器实现绝对并发,即当所有请求集合完毕之后一块出发1、jmeter线程组里面可以简单设置多线程,但是当你设置1秒钟50个线程时去看结果其实50个请求跑完并不是在1秒钟之内2、由于测试的机器本身性…

    2022年9月1日
    6
  • JAVA事件适配器的作用

    JAVA事件适配器的作用适配器 其实从接口事件演变尔来的。相当于触发器,说简单点,它就是一些动作。例如说鼠标的按下点击还有键盘等等。适配器就是实现接口事件的类不过,不是真的实现,只是空实现,没有具体的方法体。适配器主要是为了方便程序员操作,避免了代码的重复性。只要一个对象或者属性添加了这个适配器,那么它就会监视这对象或属性。例如说一个按纽。按纽添加一个MouseAdap

    2022年5月4日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号