1.常用Android控件最终都会继承自View类

2.ViewGroup是一些布局类列表的基类,包括View和ViewGroup
3.构造界面的三种方法
   a.完全使用代码(太灵活,而不好维护)
   b.在xml文件中定义(不太灵活)
   c.结合两种方法,在xml文件中定义静态部份,在代码中实现灵活部分
 
4.定义
      视图、部件、控件:表示一种用户界面元素
      容器:包含视图的视图。例如网格,网格中的每一个单元格是一个视图
      布局:容器和视图的可视排列,可以包含其他布局。
5.文本控件
    a.TextView,比较有用属性“autolink",可以根据内容的形式,可以把内容作为参数来调用相应的活动,比如电话号码,可以直接点击然后进入打电话应用。
        实现形式有3种
        1.xml
             <TextView .... android:autolink="email|web" .../>
        2.使用TextView的setAutoLink方法
              tv.setAutoLink(Linkfy.ALL); //这种方法要求内容在这个方法后面设置
        3.使用Linkfy类的addLinks方法
              Linkfy.addLinks(TextView的实例,Linkfy.ALL);
    b.EditText重要属性inputType可以设置(多行、检查拼写错误、首字母大写...); hint属性显示提示内容
    c.AutoCompleteTextView可以自动补齐输入的内容
       AutoCompleteTextView actv = (AutoCompleteTextView)findViewById(R.id. actv);
              ArrayAdapter<String> autoWord = new ArrayAdapter<String>(this,
                                                   android.R.layout. simple_dropdown_item_1line,
                                                    new String[]{"chendu" ,"shanghai" ,"wuhan" ,"Greek" });
              actv.setAdapter(autoWord);//设置补齐的内容
  d.MultiAutoCompleteView 可以设置从什么地方开始启用补齐功能
    MultiAutoCompleteTextView mautoWord = (MultiAutoCompleteTextView)findViewById(R.id.mactv);
              ArrayAdapter<String> autoMWord = new ArrayAdapter<String>(this,
                           android.R.layout. simple_dropdown_item_1line,
                            new String[]{"chendu" ,"shanghai" ,"wuhan" ,"Greek" ,"shuzhou" });
              mautoWord.setAdapter(autoMWord);
              //设置每当遇到逗号就启用补齐功能
              mautoWord.setTokenizer( new MultiAutoCompleteTextView.CommaTokenizer());
 
6.按钮控件,包括基本按钮,图像按钮,切换按钮
 
  6.1可以在xml中和代码中设置处理方法
     xml中实现 
       android:onClick ="SaveItem"/>
 
     代码中实现
       btn.setOnClickListener(new OnClickListener(){
                      public void onClick(View v){
                           Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse( "http://www.baidu.com"));
                           startActivity(intent);
                     }
              });
              
   6.2图像按钮设置图像
       xml:
       <ImageButton
        android:id="@+id/imageBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@null"
        android:src="@drawable/a1"
        />
      
      代码:
         ImageButton imBtn = (ImageButton)findViewById(R.id. imageBtn2);
              imBtn.setImageResource(R.drawable. m2);
 
   6.3设置状态选择器。选择器定义在drawable下的xml文件中内容如下:
       <?xml version= "1.0" encoding ="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed= "true"
        android:drawable="@drawable/m4" />
    <item android:state_focused= "true"
        android:drawable="@drawable/m3" />
    <item android:drawable= "@drawable/m4"/>
</selector>
 
定义的顺序很重要,android是顺序测试,所以把特殊状态定义在前
 
设置选择器
     <ImageButton
        android:id="@+id/imageBtn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@null"
        android:src="@drawable/imagebuttonselector"
        />
 
   6.4 ToggleButton两种状态的按钮
   6.5 复选框 CheckBox
   6.6 RadioGroup将多个RadioButton组合成为一组,获取选择的处理函数像这样
       RadioGroup rg = (RadioGroup)findViewById(R.id. rgb);
              rg.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() {
                     
                      @Override
                      public void onCheckedChanged(RadioGroup group, int checkedId) {
                            // TODO Auto-generated method stub
                           StringBuffer message = new StringBuffer();
                           RadioButton rb = null;
                           
                            if(checkedId == -1){
                                  message.append( "nothing seleced");
                           } else{
                                  rb = (RadioButton)findViewById(checkedId);
                                  message.append(rb.getText());
                                  message.append( " is selected!");
                           }
                           TextView tv= (TextView)findViewById(R.id. btn_res_dis);
                           tv.setText(message.toString());
                     }
              });
    6.7ImageView
    6.8 DatePicker TimePicker
 
 
 
 
 
 

android 学习六 构建用户界面和使用控件的更多相关文章

  1. Pro Android 4 第六章 构建用户界面以及使用控件(一)

         目前为止,我们已经介绍了android的基础内容,但是还没开始接触用户界面(UI).本章我们将开始探讨用户界面和控件.我们先讨论一下android中UI设计的一般原理,然后我们在介绍一下an ...

  2. Android学习笔记(七)——常见控件

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 给我们提供了大量的 UI控件,下面我们简单试试几种常用的控件. 一.TextView 在布局文 ...

  3. android学习七(创建自己定义控件)

    前面学习的是android的基本控件和布局的使用,可是主要的控件和布局有时候并不能实现复杂的布局.我们来看下各种控件和布局的关系. 可见全部的控件都是直接或者间接的继承自View的,全部的布局都是直接 ...

  4. Android学习之基础知识五—ListView控件(最常用和最难用的控件)

    ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mia ...

  5. Android学习笔记50:使用WebView控件浏览网页

    在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在 ...

  6. [Android学习笔记]继承自ViewGroup的控件的过程学习

    ViewGroup文档 http://developer.android.com/training/index.html 继承自ViewGroup需要重写onLayout方法用来为子View设定位置信 ...

  7. Android学习(十七)自定义View控件 TopBar

    一.创建自定义TopBar头部菜单条 实现步骤: 1.在values中添加attrs.xml文件,设置自定义属性. 2.添加Topbar类,继承RelativeLayout,实现具体功能. 3.添加到 ...

  8. Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)

    原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基 ...

  9. Android自定义控件View(三)组合控件

    不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...

随机推荐

  1. Git Brash在Windows下乱码问题

    ,/etc/gitconfig: [gui] encoding = utf- #代码库统一用urf-8,在git gui中可以正常显示中文 [i18n] commitencoding = GB2312 ...

  2. 【[CQOI2014]数三角形】

    lx让做的题,其实很简单,难度评到紫令人吃惊 首先读进来\(n,m\)先\(++\),之后就是一个格点数为\(n*m\)的矩阵了 我们直接求很那做,补集转化一下,我们容斥来做 首先所有的情况自然是\( ...

  3. 【[USACO15JAN]草鉴定Grass Cownoisseur】

    这大概是我写过的除了树剖以外最长的代码了吧 首先看到有向图和重复经过等敏感词应该能想到先tarjan后缩点了吧 首先有一个naive的想法,既然我们要求只能走一次返回原点,那我们就正着反着建两遍图,分 ...

  4. 在linux命令行中调试在OJ上的c++代码

    gcc & g++现在是gnu中最主要和最流行的c & c++编译器 .g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可. 编译器是根据gcc ...

  5. bootstrap table 解析写死的json.并且把进度条放进列中。

    function showPhaseInfo(phase){ //json字符串转json对象 var phaseInfo = eval(phase); $('#phaseTable').bootst ...

  6. 【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)

    题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径 ...

  7. MVC验证码生成类库

    public class ValidateCode { /// <summary> /// 验证码的最大长度 /// </summary> public int MaxLeng ...

  8. ie浏览器下载文件时文件名乱码

    做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...

  9. 微信小程序之数据传递

    本文主要介绍,页面跳转间的数据传递.传递的数据类型主要有1,基本数据类型:2,对象:3,数组集合: 先告诉你,本质上都是string类型传递.但是对于对象和数组集合的传递需要小小的处理一下传递时的数据 ...

  10. Java之环境变量配置

    1.首先安装Java的JDK(Java开发工具包 包含JRE(Java运行环境))下载地址URL:www.oracle.com (64位或32位) 安装:傻瓜式安装(点击下一步即可)中间可更改安装目录 ...