Android基础--界面操作

Android基础–界面操作.摘要

  • 01.ListView的基础使用步骤
  • 02.ListView的优化操作
  • 03.布局填充打气筒使用
  • 04.常见的对话框操作

学生信息管理系统的界面–采用lv.addView(TestView对象)显示

  • 1.设置学生管理系统layout界面,ScrollView滚动显示,只能有一个子控件
    1. 了监听方法(Button不用再找到)
      • 获取到数据库增删改查对象: dao=new StudentDao(this);调用refreshDatabases();刷新数据
  • 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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值