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)
上一篇 2022年3月10日 上午10:35
下一篇 2022年3月10日 上午11:00


相关推荐

  • 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)

    七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)整理了一些主要的分割方法 以后用省的再查 其中大部分为转载资料 转载链接见资料 一 工具 VC OpenCV 二 语言 C 三 原理 nbsp nbsp nbsp 1 otsu 法 最大类间方差法 有时也称之为大津算法 使用的是聚类的思想 把图像的灰度数按灰度级分成 2 个部分 使得两个部分之间的灰度值差异最大 每个部分之间的灰度差异最小 通过方差的计算来寻找一个合适的灰度级别来划分 所以可以在二值化的

    2026年3月26日
    2
  • webpack css_webpack打包有哪些文件

    webpack css_webpack打包有哪些文件css文件处理-准备工作(以下项目配置都是基于上一篇webpack(4)的基础上)在项目开发中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中。这里我们就在src目录中创建一个n

    2022年7月30日
    7
  • 阿里云DDNS服务

    阿里云DDNS服务提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档搭建自己的 aliyunDDNS 服务 Java 前言由于运营商分配的公网 ip 经常变化 需要域名绑定 而不喜欢向日葵的 DDNS 服务 然后跟据官网 demo 自己写了一个记录一下一 DDNS 是什么 域名动态解析服务二 使用步骤 1 引入依赖代码如下 示例 dependency groupId com aliyun groupId amp dependency

    2026年3月19日
    2
  • pycharm ssh_云终端机安装方法

    pycharm ssh_云终端机安装方法1、主题  如何使用Pycahrm内置终端以及远程SSH工具。  2、准备工作  Pycharm版本为3.0或更高  连接SSH服务器  3、使用SSH客户端  4、开启连接  选择Tools|StartSSHSession…的主菜单命令,单击Editcredentials:  5、提供连接信息  在Sessio

    2022年8月28日
    5
  • 大数据营销在电商领域的应用案例

    大数据营销在电商领域的应用案例在电商产业如火如荼的今天,电商已成为互联网经济的主要力量,并不断发展升级。618年中大促、双十一、双十二等一系列的购物狂欢节引爆了一个又一个的互联网经济热点。随着互联网新技术的出现,尤其是互联网大数据在电商领域的应用将给电商企业带来诸多利益,跟不上时代的企业将会处于弱势并最终被淘汰。大数据正在给互联网带来翻天覆地的变化,尤其是在大数据营销运用方面。以大数据为基础的互…

    2022年5月27日
    48
  • spring使用aspectj_你可知晓

    spring使用aspectj_你可知晓【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)http://blog.csdn.net/javazejian/article/details/54629058出自【zejian的博客】关联文章:关于SpringIOC(DI-依赖注入)你需要知道的一切关于SpringAOP(AspectJ)你该知晓的一切本篇是年后第一篇博文,由于博主用了不少

    2022年8月11日
    11

发表回复

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

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