1. 介绍

Android控件大多位于android.widget, android.view.View为他们的父类
对于Dialog系列, android.app.Dialog为父类

Android的原生控件, 一般是在res/layout下的xml文件中声明
然后在Activity通过使用super.setContentView(R.layout.layout_name)来加载layout
在Activity中获取控件的引用使用super.findViewById(R.id.widget_id), 然后接可以使用这个引用对控件进行操作(添加监听, 设置内容).

值得提出的是, 上一篇文章中的Layout(LinearLayout, TableLayout, RelativeLayout, …)都是控件.

2. 控件关系

View子类结构图:

TextView子类结构:

ViewGroup子类结构图:

FrameLayout子类结构:

android.app.Dialog子类结构:

3. 基本控件

3.1 文本类控件

常用文本类控件如下:

TextView                负责展示文本, 不可编辑
EditText 可编辑文本控件

3.2 按钮类控件

Button                   按钮
ImageButton 图片按钮
ToggleButton 开关按钮
RadioButton/RadioGroup 单选按钮
CheckBox 复选按钮

3.3 图片类控件

ImageView                负责显示图片

3.4 进度条控件

ProgressBar              显示进度条, 不可拖动
SeekBar 拖动条
RatingBar 星级评分条

3.5 时间类控件

TextClock                文本时钟
AnalogClock 模拟时钟
Chronometer 计时器
DatePicker 日期选择器
TimePicker 时间选择器
CalendarView 日期视图

3.6 提示&对话框控件

Toast                    消息提示框
Notification 状态栏通知
AlertDialog 对话框
ProgressDialog 进度条对话框

4. 布局类控件

4.1 基本布局类控件

详细信息参考<Activity布局>

4.2 适配器布局类控件

该类控件需要Adapter(BaseAdapter, ArrayAdapter, SimpleAdapter)来配合使用

ListView                 列表视图
ExpandableListView 可折叠的列表
GridView 网格视图
Spinner 列表选项框
ViewFlipper 翻转视图
Gallery 画廊视图

下面是关于ListView的简单使用方法

<!-- activity_main.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.lineto.testlistview.MainActivity">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout> <!-- layout_item,xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingTop="2dp"
android:paddingRight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/name"
android:width="180dp"
android:textSize="10pt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/ip"
android:textSize="10pt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
/* MainActivity.java */
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ListView listView = (ListView)findViewById(R.id.listview);
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); String[] stringsName = {"Jerry", "Penny", "Jimmy"};
String[] stringsIp = {"192.169.0.1", "192.168.1.1", "192.168.2.1"};
for (int i = 0; i < stringsName.length; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", stringsName[i]);
map.put("ip", stringsIp[i]);
list.add(map);
} SimpleAdapter simpleAdapter = new SimpleAdapter(this, list, R.layout.layout_item,
new String[]{"name", "ip"},
new int[]{R.id.name, R.id.ip}); listView.setAdapter(simpleAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Adapter adapter = parent.getAdapter();
HashMap<String, String> map = (HashMap<String, String>) adapter.getItem(position);
Toast toast = Toast.makeText(MainActivity.this, map.get("name") + "-" + map.get("ip"), Toast.LENGTH_SHORT);
toast.show();
}
}); }
}

4.3 滚动条控件

ScrollView                     可滚动的布局容器

参考:
<Android笔记-常用控件以及用法>
<Android开发学习之五、基本界面控件>

Android控件介绍的更多相关文章

  1. Android自定义控件1--自定义控件介绍

    Android控件基本介绍 Android本身提供了很多控件比如我们常用的有文本控件TextView和EditText:按钮控件Button和ImageButton状态开关按钮ToggleButton ...

  2. android xml 常用控件介绍

    android常用控件介绍 ------文本框(TextView)     ------列表(ListView)     ------提示(Toast)     ------编辑框(EditText) ...

  3. Android support library支持包常用控件介绍(二)

    谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...

  4. Android控件系列之RadioButton&RadioGroup(转)

    学习目的: 1.掌握在Android中如何建立RadioGroup和RadioButton 2.掌握RadioGroup的常用属性 3.理解RadioButton和CheckBox的区别 4.掌握Ra ...

  5. android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

  6. Android控件TextView的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...

  7. Android控件之ImageSwticher

    Android控件之ImageSwticher 1. ImageSwticher介绍 ImageSwitcher是图片切换的控件,它能实现图片切换时的动画效果,包括图片导入效果.图片消失效果等等.An ...

  8. 一步一步学android控件(之六) —— MultiAutoCompleteTextView

    今天学习的控件是MultiAutoCompleteTextView . 提到MultiAutoCompleteTextView 我们就自然而然地想到AutoCompleteTextView ,就想知道 ...

  9. Android控件点击事件

    1. 介绍 本文介绍了Android控件的点击事件 Android控件点击(onClick)事件可以用如下三种方式来实现 2. 实现onClick方法 在layout的xml中指定onClick方法, ...

随机推荐

  1. Android面试收集录12 View测量、布局及绘制原理

    一.View绘制的流程框架 View的绘制是从上往下一层层迭代下来的.DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下, ...

  2. Diycode开源项目 如何解决InputMethodManager造成的内存泄漏问题

    1.内存泄漏的状况及原因 1.1.利用LeakCanary查看内存泄漏的状况 1.2.内存泄漏怎么产生的呢? InputMethodManager.mServicedView持有一个最后聚焦View的 ...

  3. tools.jar seem to ....

    android stadio 运行不起来,可以在java_home原来的路径下加一个\, 然后就可以运行起来了.

  4. 洛谷P1331 海战

    海战 题目链接 这还是一道联通块的题,只是需要判断是否存在以下四种情况: o. .o oo oo oo oo o. .o 如果存在就是Bad placement. 要注意标记以下,不然会出现多次输出B ...

  5. Oz 创建CentOS7镜像

    参考链接: https://github.com/clalancette/oz/wiki/Oz-template-description-language https://github.com/cla ...

  6. codeforces Registration system

     Registration system A new e-mail service "Berlandesk" is going to be opened in Berland in ...

  7. Day4 自定义控件/ListView/RecyclerView

    创建自定义控件 引入布局 在新增的title.xml中创建一个自定义的标题栏: <LinearLayout xmlns:android="http://schemas.android. ...

  8. Opencv3.4.5安装包

    这个资源是Opencv3.4.5安装包,包括Windows软件包,Android软件包,IOS软件包,还有opencv的源代码:需要的下载吧. 点击下载

  9. 稀疏矩阵相乘-Python版

                                          稀疏矩阵相乘-Python版 Given two sparse matrices A and B, return the r ...

  10. c++知识点总结--new的一些用法

    new operator 将对象产生与heap,不但分配内存而且为该对象调用一个constructor   operator new只是分配内存,没有constructor被调用 有个一个特殊版本,称 ...