listview中数据如果要实时读写,需要每次操作后都要查询数据库吗

原创 2016年04月26日 20:18:50

总结一下填充listview的步骤:

1:准备数据:先把要填充的数据从数据库中查询出来,放入一个list存放

2:设置listview中item的格式,新建一个xml文件,自定义布局

3:新建一个adapter类继承baseadapter,需要重写几个方法

@Override
		public int getCount() {
			System.out.println("getCout执行");
			return timelist.size();
		}
这个方法每次滑动调用,返回list的大小就行

@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			System.out.println("getView执行");
			View view = null;
			//converView 系统缓存
			if(convertView == null){
				//把布局文件填充成View对象
				view = View.inflate(MainActivity.this, R.layout.item, null);
			}
			
			else{
				view = convertView;
			}
			//findViewByid只能在当前布局文件中找
			TextView tv_name = (TextView) view.findViewById(R.id.tv_id);
			togglebutton= (ToggleButton) view.findViewById(R.id.toggleButton_id);
			tv_name.setText(timelist.get(position).getHour()
					+":"+timelist.get(position).getMinute());
			System.out.println("选择开关状态:"+position+":"+timelist.get(position).getUserswitch());
			
			//这里和下面togglebuttond的onchangeLIstener冲突
			if(timelist.get(position).getUserswitch() == 0){
				togglebutton.setChecked(false);
				System.out.println(position+"关");
			}
			else{
				togglebutton.setChecked(true);
				System.out.println(position+"开");
			}
			togglebutton.setOnClickListener(new myToggleButtOnClickListener(position));

			return view;
		}

最重要的方法,每出现一个新的item时系统就会调用该方法,返回一个view对象用于显示在界面,convertView用于复用缓存(重要),其中在找item中的控件id时要用view.findViewById();

@Override
		public Object getItem(int arg0) {
			return null;
		}

		@Override
		public long getItemId(int position) {
			return 0;
		}
这两个方法只要重新一下就可以

4:控制显示的适配器写好后就可以让listview显示在界面了,用listview.setAdapter();

存在一个问题

就是如果在listview中需要显示一些状态的比如togglebutton,在显示按钮的状态时先查选数据库,再根据数据设置状态。如果你点击按钮改变状态时更改数据库内容,此时你的list中还是上次查询的数据,如果你把这个item滑出界面在滑进来时,按钮状态又回到之前的状态,想到的最简单的解决方法是,每次滑动之前就查询数据库,把数据放到list中
这样感觉太消耗资源

asp.net---ListView的简单使用

.aspx代码如下:
  • yayun0516
  • yayun0516
  • 2014年11月10日 09:22
  • 1913

eclipse maven 修改代码后都需要clean的解决办法

我公司做开发使用的编写工具是不限定的,有的用eclipse或myEclipse所以有的myEclipse中不显示错误,但在eclipse中会显示,一般都是配置文件,或一些表态文件。 我的问题是出在...
  • downloads_zip
  • downloads_zip
  • 2016年11月29日 11:55
  • 1843

解决svn每次都要输入用户名和密码

ubuntu 14.04 安装 sudo apt-get install subversion 莫名其妙的导致svn每次checkout都需要密码 解决方法如下:     cd...
  • taosera
  • taosera
  • 2014年10月24日 17:06
  • 1385

解决tortoiseGit每次push都需要输入用户名密码的问题

当你配置好git后,在C:\Documents and Settings\Administrator\ 目录下有一个 .gitconfig 的文件,里面会有你先前配好的name 和email,只需在下...
  • lkx94
  • lkx94
  • 2016年06月03日 09:50
  • 1847

office2007 每次打开都要配置

每次打开work, xls 文件,都在那配置。在命令行窗口执行下面命令可以解决: Office 2003用这条命令: reg add HKCU\Software\Microsoft\Offi...
  • gold2008
  • gold2008
  • 2013年01月28日 09:34
  • 6527

ListView中notifyDataSetChanged()刷新数据不更新原因分析

情景分析:在开发过程中,我们经常会使用notifyDataSetChanged()实时的让ListView进行刷新操作,但是有的时候却会发现ListView不再刷新了,有的时候却又可以自动刷新。原因分...
  • u011771755
  • u011771755
  • 2015年05月12日 23:02
  • 2417

每次启动hadoop都要格式化namenode?

前面配置好hadoop后,在使用中发现一个问题。就是每次启动都需要格式化,不然namenode就无法启动。 在网上找到了相应的解决方法http://blog.csdn.net/bychjzh/arti...
  • leaderYU
  • leaderYU
  • 2014年03月13日 22:38
  • 4820

GIT每次都要输入用户名和密码的解决方案

缓存用户信息 3600s git config –global credential.helper ‘cache –timeout 3600’
  • qq_14922059
  • qq_14922059
  • 2016年09月16日 22:35
  • 2141

opencv学习笔记1 opencv安装及配置 一劳永逸不需要每次都重新配置

opencv2.4.9地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.9/opencv-2.4.9.exe...
  • tercel_zhang
  • tercel_zhang
  • 2014年12月20日 11:07
  • 5526

配置工程的附加库包含目录的依赖信息的时候,每次新建工程的时候都需要重新配置。

在程序开发中,很多时候需要用到别人开发的工具包,如OpenCV和itk。 一般而言,在vs2008中,很少使用源文件,大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll)...
  • oAmamatthew
  • oAmamatthew
  • 2014年06月11日 11:15
  • 1080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:listview中数据如果要实时读写,需要每次操作后都要查询数据库吗
举报原因:
原因补充:

(最多只允许输入30个字)