AdapterView

AdapterView会展示大量相同数据类型的数据!例如:列表、下拉框等等

1.Spinner

  • 是一个AdapterView,无法自身独立去显示内容,需要一个Adapter
  • Spinner的使用:
    • 在xml中声明Spinner
    • 设置Spinner特有属性
    • 思考三要素获取问题
      • 要素1:查找AdapterView,使用findViewById
      • 要素2:查找数据,建议使用集合!数据来源为数据库、网络请求、本地数据
      • 要素3:Adapter的选择
        • ArrayAdapter
          当数据类型是一个数组或者一个集合,内部不是实体类,只是字符串类型的时候!
          ArrayAdapter也只最简单的Adapter,通常用来适配,简单的字符串数据!
        • SimpleAdapter
          用于本地数据图文混排!
        • CursorAdapter
          用于显示数据库数据的Adapter
        • BaseAdapter
          基础Adapter,完全自定义Adapter,他可以展示任何数据!但是需要自己实现Adapter的一些方法!写法复杂
  • Adapter的构造方法
    new ArrayAdapter(this,android.R.layout.simple_list_item_1, data);

    • Context:上下文对象
    • 单条显示布局:android.R.layout.simple_list_item_1(TextView)
    • Data:数据,推荐使用集合
  • Adapter和AdapterView相互关联

    • AdapterView.setAdapter(Adapter);
  • Spinner监听事件

    • Spinner不能设置setOnItemClickListener,使用:setOnItemSelectedListener代替
    • setOnItemSelectedListener(new OnItemSelectedListener() {
      @Override
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      // TODO Auto-generated method stub
      // 选中第几个时调用的方法
      // 参数1:patent调用的那个Spinner
      // 参数2:view单条视图 TextView
      // 参数3:position 选中的位置 位置的范围是0到size-1
      // 参数4:在这个情况下 id==position //Adapter会给单条视图添加一个唯一的id,正好position也不会重复
      }
      @Override
      public void onNothingSelected(AdapterView<?> parent) {
      // TODO Auto-generated method stub
      // 当数据清空的时候调用此回调方法
      // 参数1:parent触发的AdapterView
      }
  • 清空数据或者添加数据

    • 清空数据:adapter.clear()数据类型不能是数组!
    • 添加数据:添加数据的时候,所要添加的集合必须和Adapter内部的集合是同一对象!
    • 正确的添加姿势:
      • adapter.add();
      • adapter.addAll();
      • 数据源是通过构造方法传递,这种情况,可以直接往数据源集合中直接添加数据,添加数据以后记得使用notifyDataSetChanged()刷新Adapter
  • 常用属性
    • android:entries引用字符串数组资源,Spinner会直接显示。如果使用此属性,代表显示内容写死了!
    • android:spinnerMode中dialog对话框,dropdown下拉列表
    • android:prompt提示属性
      • 注意:
        • Spinner的模式必须是dialog
        • 引用的字符串必须是values-strings文件夹下的资源!
    • android:popupBackground弹出框的背景
      • 注意
        • Spinner的模式必须是dropdown
    • android:dropDownVerticalOffset当spinnerMode=”dropdown”时,下拉的项目选择窗口在垂直方向相对于Spinner窗口的偏移量
    • android:dropDownWidth当spinnerMode=”dropdown”时,设定下拉框的宽度
    • android:gravity设置当前选择的项目的对齐方式

2.AutoCompleteTextView

  • AutoCompleteTextView是自动补全框,继承EditText,输入时候会弹出相关的建议框!选中,可以快速的补全输入内容,继承于EditText,EditText继承于TextView,它不是AdapterView,但是它需要一个Adapter进行数据匹配

  • 使用:

    • xml中声明控件
    • Activity初始化控件
    • 封装数据到集合中,数据来源:数据库、网络、本地
    • 创建Adapter
    • Adapter和控件相互结合
    • 输入监听事件
  • 属性:

    • android:completionThreshold=”1”输入第几个字母开始提示
    • android:popupBackground=”#00ffff”建议框的背景(颜色和图片)
    • android:completionHint=”请输入!!”在建议框下面的提示
    • android:dropDownHorizontalOffset=”-100dp”
    • android:dropDownVerticalOffset=”100dp”控制建议框水平和垂直偏移!! 可以写负值!!
    • android:dropDownAnchor=”@+id/button”以某个控件为锚点,弹出框显示在锚点控件的下面!!

3.ScrollView

  • ScrollView垂直滚动布局
    • 注意:ScrollView,垂直滚动布局,它只能有一个直接的子控件或者布局
    • 使用:内部定义一个垂直的LinearLayout高自适应!在LinearLayout的内部添加控件!
  • HorizontalScrollView水平滚动的布局
    • 注意:HorizontalScrollView水平滚动的布局,它只能有一个直接的子控件或者布局
    • 使用:内部定义一个水平排列的LinearLayout,宽自适应,在LinearLayout的内部添加控件!
  • 常用属性:
    • android:fadeScrollbars=”false”是否在未滑动时显示,false一致显示
    • android:scrollbars=”none”去掉滚动条

4.EditText输入监听

  • addTextChangedListener(new TextWatcher())
  • afterTextChanged(Editable s) 监听输入后的字符串
  • 用途:
    • 可以动态判断输入字符串的长度,做反馈功能,文本长度限制和监听!!
    • 可以动态控制文本输入的内容!!利用try catch

5.RatingBar

  • 评星控件
  • 常用属性:
    • android:numStars=”6”星星总数
    • android:rating=”2.5”设置初始星星数量
  • 评星监听事件:
    ratingBar: 当前ratingBar
    rating : 当前评星数
    fromUser : 是否是用户手动改变
    setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
    @Override
    public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
    // TODO Auto-generated method stub
    }
    });

6.ProgressBar

  • 进度条,有很多种,圆形和条形
  • 作用: 可以有效的提高用户体验度!!当进行耗时操作,可以使用进度条,给用户进行良好提示!!
  • 使用:
    • layout中声明控件 ProgressBar
    • 设置ProgressBar的属性
    • 在Activity进行操作!!
  • 常用方法:
    • setProgress()设置当前的进度值
    • setSecondaryProgress()设置第二层进度值

7.SeekBar

  • 继承ProgressBar,可拖拽的进度条
  • 设置监听事件:

    • setOnSeekBarChangeListener(new
      OnSeekBarChangeListener() {
      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
      // TODO Auto-generated method stub
      //此方法在用户拖动进度条手松开时调用
      }
      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
      // TODO Auto-generated method stub
      //此方法在用户拖动进度条手按下时调用
      }
      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
      // TODO Auto-generated method stub
      //此方法当进度条进度改变时调用
      //其中参数意义为
      //seekBar: 当前的SeekBar
      //progress: 改变后的进度值
      //fromUser: 是否是用户拖拽改变
      }
      });

8.MediaPlayer使用

  • 实例化:
    • player = MediaPlayer.create(Context context,int resID);
      context: 上下文对象
      resID : 歌曲资源id
  • 常用方法
    • player.pause(); //暂停
    • player.start(); //开始播放
    • player.stop(); //停止
    • player.isPlaying(); //是否正在播放
    • player.prepare(); //进入准备状态
    • player.seekTo(int); //跳到指定的位置
    • player.getDuration(); //当前音乐的长度
    • player.getCurrentPosition()//获取当前播放的长度
    • player.release(); //释放资源

9.res资源获取

  • 根据id 去res资源中获取具体的资源
    • 获取res资源管理器
    • 获取具体的资源 get资源类型(R.资源类型.资源名)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值