Android基础–界面操作.摘要
- 01.ListView的基础使用步骤
- 02.ListView的优化操作
- 03.布局填充打气筒使用
- 04.常见的对话框操作
学生信息管理系统的界面–采用lv.addView(TestView对象)显示
- 1.设置学生管理系统layout界面,ScrollView滚动显示,只能有一个子控件
-
- 了监听方法(Button不用再找到)
- 获取到数据库增删改查对象: dao=new StudentDao(this);调用refreshDatabases();刷新数据
- 了监听方法(Button不用再找到)
- 3.业务逻辑:
* 1.将文本存储到数据库(save(View v)):
* 1.获取到输入框文本内容,判断不能为空
* 2.将数据保存到数据库中: dao.add(name,phone);
* 2.显示数据(创建一个方法: refreshDatabases()):
* 1.获取到所有的数据库中的数据dao.findAll();并把数据用一个集合接受
* 2.遍历集合,获取每个学生对象,获取到TextView对象: TextView view=new TextView(this);
将学生对象增加到: view.setText(student.toString());将view增加到lv中显示: ll.addView(view); - 弊端:因其每次显示的是所以view对象的信息,当数据庞大时,容易内存溢出(OOM)outofmemoryErro
控件ListView
- 1.ListView 自带ScrollView 的功能,可以实现界面滚动
- 2.ListView 底层是采用MVC结构设置
3.ListView 显示原理:动态平衡,屏幕上显示几个条目,ListView就会给我们展示几个条目
使用步骤:
1. 在layout中定义一个ListView 2. 关心控件查找ListView(lv=(ListView) findViewById(R.id.lv);) 3. 设置适配器: lv.setAdapter(new MyAdapter()); 1. 写一个类继承BaseAdapter 2. 重写四个方法: 1. getCount()控制listview有多少条目 2. getview(int position, View convertView, ViewGroup parent)返回某个位置显示的item, 通过复用ListView 的缓存池里convertView,减少系统GC,可以很大程度节省系统运行内存的消耗 3. getItem()获取到每一个条目对象 4. getItemid()获取到每一个条目id 4. 设置ListView点击事件
学生管理系统的升级版–ListView显示
注意:getCount 返回是: students.size();
弊端: 若目录拖动太快,垃圾回收器,回收不够迅速,容易出现内存溢出
ListView复用
原理:
* 1.当我们滑动listview的时候,每当一个item看不见的时候,那么那个item就可以被复用
起来了,也就是成为了convertView,那个时候convertView就不为null了
* 2.所谓的复用,其实本质是就是item的view对象没有真正的被垃圾回收器回收掉,而是重
新将身上的数据给换掉了,看起来好像是出现了一个新的item而已
优化界面–打气筒
打气筒: view.inflate(上下文,xml文件源(R.layout.文件名),null)将xml文件转换为view对象(通过pull解析转换为view对象)
常见会话框管理
- 需求点击某个键,可以提醒用户
确定取消对话框操作步骤:
* 1.获取工厂对象AlertDialog.Buider builder=new Builder(上下文) * 2.设置标题 builder.setTitle("标题") * 3.设置内容 builder.setMessage("提示信息") * 4.确定按钮 builder.setPositiveButton("是",new DialogInterface.OnClickListener...) * 5.取消按钮 builder.setNegativeButton("否", null); * 6. builder.show();
单选对话框操作步骤:
* 1.获取工厂对象AlertDialog.Buider builder=new Builder(上下文) * 2.设置标题 builder.setTitle("标题") * 3.定义选项内容 String[]arr; * 4.确定选项按钮 builder.setSingleChoiceItems(arr, -1, new OnClickListener()..);-1即不选中任何条目 * 5.取消按钮 builder.setNegativeButton("否", null); * 6. builder.show();
进度条操作步骤:
* 1.获取进程对话框对象: ProgressDialog pd = new ProgressDialog(this);
* 2.设置进度条风格: pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
* 3.进度条的最大值: pd.setMax(100);
* 4.设置提醒信息标题: pd.setTitle(“提醒”);
* 5.设置提醒信息: pd.setMessage(“正在加载数据…请稍后”);
* 6.pd.show();