Android回顾--(四) 布局加载器

布局加载器

1、什么是布局加载器?

布局加载器就是用来记载布局的类,作用就是将我们的布局文件转换成能够肉眼看懂的视图View。

2、布局加载器器该怎么是使用

//首先:获取当前的布局加载器的对象
//第一种:面向对象的写法
LayoutInfalter inflater = getLayoutInflater();
//第二种:通过获取系统的服务来获取布局加载器的对象
LayoutInfalter inflater2=(LayoutInfalter)getSystemService(LAYOUT_INFLATER_SERVICE);
//第三种:通过某一个上下文的对象来获取布局加载器的对象
LayoutInflater inflater3 = LayoutInflater.from(getApplicationContext());
//其次:通过布局加载器的inflate()方法来加载当前的布局文件
View view =inflater.inflate(R.layout.inflate_layout,null);
//最后,根据布局加载器获取到的视图View进行一些视图操作

Spinner(下拉列表)的使用

  方法一、在String.xml中声明列表中的数组

<string-array name="strArr">
        <item>中国</item>
        <item>小日本</item>
        <item>美国佬</item>
        <item>欧洲佬</item>
        <item>印度阿三</item>
    </string-array>

在Spinner列表的控件中使用android:entries来引用刚刚设置好的数据源进行适配,对应的布局文件如下

  <Spinner
                 android:id="@+id/editRegion"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:entries="@+array/region"/>

  方法二、在JAVA的代码中通过适配器来设置数据
第二种方法相对于第一种方法不易维护,所以一般都使用的第一种。

获取下俩列表选中的值:spinner.getSelecteditem().toSttring();
设置选中值

 SpinnerAdapter apsAdapter= spinner.getAdapter();
       int k= apsAdapter.getCount();
       for(int i=0;i<k;i++){
           if("hhh".equals(apsAdapter.getItem(i).toString())){
            spinner.setSelection(i,true);
               break;
           }
       }

适配器

1、什么是适配器

 适配器简单点说就是连接布局模板和数据源以及目标控件的桥梁,通过适配器可以将数据适配显示带目标控件上。其优点就是可以一次添加多条数据到目标控件

2、ArrayAdapter

 ArrayAdapter的几种获取对象的方法。
   a、 ArrayAdapter adapter=new ArrayAdapter<T>(context,textViewResourceId);
      第一个参数是;上下文
      第二个参数是:模板id
注意:这个模板的根目录只能是 TextView 可以给定id也可以不给定id这种方式下需要通过adapter.add()或者 adapter.addAll()来添加数据
   b、 ArrayAdapter adapter=new ArrayAdapter(context, resource, textViewResourceId);
      重点是resource:这里的这个是模板的id
注意:这里的TextView可以是布局文件下面的这种方法来添加数据的话那么也需要add()或者addAll()来添加数据源
   c、 ArrayAdapter adapter= ArrayAdapter(context, textViewResourceId, objects)
     第二个参数和上面的第一个构造函数一样
注意:这个的模板的根也只能是TextView 第三个参数表示的是数据源————>集合或者数组
   c、 ArrayAdapter adapter=new ArrayAdapter<T>(context,resource, textViewResourceId, objects)
     第一个参数:上下文
     第二个参数:模板的id R.layout.
     第三个参数:控件id
     第四个参数:数据源
适配器中关于视图View比较特殊的方法:
adapter.clear():清除适配器中所有的View
adapter.notifyDataSetChanged();刷新适配器
3、SimpleAdapter的用法

SimpleAdapter adapter = new SimpleAdapter(SpinnerActivity.this,lists,R.layout.spinner_item3,new String[]{"name","password"},new int[]{R.id.mTextView,R.id.mTextView1});
                context:上下文
                data:数据源
                resource:模板id  R.layout.
                from:这个数组就是那个数据源中对应的key
                to:模板中的控件id的数组

适配器的某一个条目的点击事件
mSpinner.setOnItemLongClickListener 长按事件
mSpinner.setOnItemSelectedLisntener 点击某一个条目的点击事件

public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id)
   parent:他爹
   view: 点击的View
   position:点击的View的位置
   id: 点击的view的id

mSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
      
    }
    @Override
public void onNothingSelected(AdapterView<?> parent){
    
}
});

AutoCompleteTextView(完成自动匹配)

使用方式:
1、在布局文件通过id找到控件
2、使用适配器来适配数据源的词库
3、设置适配器
4、设置能够从第一个位置开始匹配

mAutoCompleteTextView.setThreshold(1);// 在setAdapter()的前后都可以实现

ScrollView:滑动视图的视图的使用

  当我们的内容以及填满当前屏幕而且内容还没有显示完全的情况下,使用滑动视图。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,827评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,784评论 0 17
  • 好久好久不看书了,远离书籍的日子似乎有两年多了,看过的,没看过的那些各类的书,散文集,诗词集,长篇小说,名人专辑…...
    伊清欢阅读 367评论 5 9
  • 年少时曾问旅路,百年后只见云深。在幼时总以为生活是充满着安逸性,可现在才发觉安逸只存于那些年轻时强傲头角峥嵘的人...
    鹏蓝阅读 425评论 0 0
  • 白雪纷飞换冬衣, 心中思念难实现。 天寒地冻互取暖, 无人相陪自怜惜。
    战天下阅读 190评论 0 2