- 浏览: 84007 次
文章分类
- 全部博客 (136)
- 我的技术资料收集 (98)
- 具体技术 (1)
- 的技术资料收集 (4)
- All Articles (1)
- 机器学习 Machine Learning (1)
- 网络编程 (1)
- java (2)
- ava (1)
- 零散技术 (1)
- C# (3)
- 技术资料收集 (1)
- CQRS (1)
- 数据库技术(MS SQL) (1)
- .Net微观世界 (1)
- Oracle SQL学习之路 (1)
- C/C++ (1)
- JS/JQ (1)
- Js封装的插件/实例/方法 (2)
- 敏捷个人 (2)
- Javascript (1)
- 程序设计---设计模式 (1)
- Bug (1)
- 未知分类 (1)
- 程序设计 (1)
- Sharepoint (1)
- Computer Graphic (1)
- IT产品 (1)
- [06]JS/jQuery (1)
- [07]Web开发 (1)
- .NET Solution (1)
- Android (3)
- 机器学习 (1)
- 系统框架设计 (1)
- Others (1)
- 算法 (1)
- 基于Oracle Logminer数据同步 (1)
- 网页设计 (1)
- 原创翻译 (1)
- EXTJS (1)
- Jqgrid (1)
- 云计算 (1)
最新评论
前言
上一篇博客介绍了Android的TextView控件,这篇博客来说一下EditText控件。EditText为一个文本控件,提供了文本输入的功能,而且继承自TextView,可以理解为可以输入的TextView。因为继承的关系,很多TextView可以用到的方法,在EditText都可以用到。
TextView
对于TextView,在很多平台上都有用到,最大的用处就是供用户输入一些信息,所以主要的方法就两个:
- setText():设置TextView控件中显示的内容。
- getText() 获取TextView控件中显示的内容。
示例程序
现在通过两个示例程序,来讲解一下EditText的使用。
第一个例子,在EditText中插入表情图片,无论是开发任何系统,这个都是常用的实现。在编码之前,需要找到一些表情图片的资源,我这里就随机找了十张图片,注意资源文件的文件名必须是小写的,放在/res/drawable文件夹下。这样在清单文件R中,就可以看到与Drawable资源对于的资源清单ID,对于在清单文件中的资源,可以通过R类访问,但是访问到的为一个int类型的资源ID,如果需要访问详细内容,需要使用getResource()方法访问到所有的资源,在其中有特定资源的访问方法。关于资源清单文件R,以后再进行详细讲解。
在Android中,使用图片资源会用到一个Bitmap的类,此类代表一个位图资源,是一个final类,需要使用BitmapFactory类的静态方法decodeXxx()转化获得,此静态方法有多种重载模式,可以适应不同的资源来源。
下面直接上代码,对于布局而言,很简单的只有两个控件:
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <EditText
8 android:id="@+id/edImage"
9 android:layout_width="match_parent"
10 android:layout_height="wrap_content"
11 android:layout_marginTop="20dp"/>
12
13 <Button
14 android:id="@+id/btnInImg"
15 android:text="添加表情"
16 android:layout_width="match_parent"
17 android:layout_height="wrap_content"/>
18 </LinearLayout>
实现InImageActivity.java代码:
2
3 import java.util.Random;
4
5 import android.app.Activity;
6 import android.graphics.Bitmap;
7 import android.graphics.BitmapFactory;
8 import android.graphics.drawable.Drawable;
9 import android.os.Bundle;
10 import android.text.Spannable;
11 import android.text.SpannableString;
12 import android.text.style.ImageSpan;
13 import android.view.View;
14 import android.widget.Button;
15 import android.widget.EditText;
16
17 public class InImageActivity extends Activity {
18
19 private Button btnInImg;
20 private EditText edImage;
21 //获取Drawable资源的Id数组
22 private final int[] DRAW_IMG_ID=
23 {
24 R.drawable.image0,
25 R.drawable.image1,
26 R.drawable.image2,
27 R.drawable.image3,
28 R.drawable.image4,
29 R.drawable.image5,
30 R.drawable.image6,
31 R.drawable.image7,
32 R.drawable.image8,
33 R.drawable.image9
34 };
35 public InImageActivity() {
36 // TODO Auto-generated constructor stub
37 }
38
39 @Override
40 protected void onCreate(Bundle savedInstanceState) {
41 super.onCreate(savedInstanceState);
42 setContentView(R.layout.edittextinimg_activity);
43
44 btnInImg=(Button)findViewById(R.id.btnInImg);
45 edImage=(EditText)findViewById(R.id.edImage);
46
47 btnInImg.setOnClickListener(new View.OnClickListener() {
48 @Override
49 public void onClick(View v) {
50 // 参数一个0-9的随机数
51 int random=new Random().nextInt(9);
52 //通过bitmapFactory获得位图资源
53 Bitmap bit=BitmapFactory.decodeResource(getResources(), DRAW_IMG_ID[random]);
54 //一个ImageSpan,用于插入的存放待插入的图片
55 ImageSpan imageSpan=new ImageSpan(InImageActivity.this,bit);
56 SpannableString spannableString=new SpannableString("img");
57 spannableString.setSpan(imageSpan, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
58 edImage.append(spannableString);
59 }
60 });
61
62 }
63
64
65
66
67 }
显示效果,点击按钮随机添加标签:
既然EditText有主要是用来获取用户输入的信息的,那么第二个例子就来讲讲用户输入时候内容的验证吧。在XML Attribute中,有一些属性可以设置输入验证的范围内容,不过此为TextView类的属性,因为TextView无法输入,此处在EditText中讲解说明。
- android:digits:指定特定能被输入的字符。
- android:inputType:设定输入的类型,下面仅介绍一些常用的,多项可以使用“|”分割。
- textUri:必须是一个URL。
- textEmailAddress:Email地址
- textPassword:密码。
- number:数字。
- android:numeric:指定数字输入类型,多项可以使用“|”分割。
- integer:数字。
- decimal:浮点类型。
- signed:带符号。
以上属性仅仅是为了限制用户的输入,还有一些输入需要给用户以提示错误信息。这里讲使用到setError()方法,如果设定了错误提示信息,会在EditText旁边以感叹号的形式显示。
布局代码:
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 android:layout_width="wrap_content"
9 android:layout_height="wrap_content"
10 android:text="使用Android:digits属性(仅输入数字与abcde)" />
11
12 <EditText
13 android:id="@+id/etNum"
14 android:layout_width="200dp"
15 android:layout_height="wrap_content"
16 android:layout_margin="10dp"
17 android:digits="123456789abcde"
18 />
19 <TextView
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:text="使用Android:inputtype属性(仅输入Email)" />
23
24 <EditText
25 android:layout_width="200dp"
26 android:layout_height="wrap_content"
27 android:layout_margin="10dp"
28 android:inputType="textPassword"
29 />
30 <TextView
31 android:layout_width="wrap_content"
32 android:layout_height="wrap_content"
33 android:text="使用Android:inputtype属性(仅输入密码)" />
34
35 <EditText
36 android:layout_width="200dp"
37 android:layout_height="wrap_content"
38 android:layout_margin="10dp"
39 android:numeric="decimal|signed"
40 />
41 <Button
42 android:id="@+id/btnValidation"
43 android:text="验证第一个输入框是否为123"
44 android:layout_width="wrap_content"
45 android:layout_height="wrap_content"/>
46 </LinearLayout>
Java代码:
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.widget.Button;
7 import android.widget.EditText;
8
9 public class EditValidationActivity extends Activity {
10
11 private Button btnValidation;
12 private EditText etNum;
13 public EditValidationActivity() {
14 // TODO Auto-generated constructor stub
15 }
16 @Override
17 protected void onCreate(Bundle savedInstanceState) {
18 // TODO Auto-generated method stub
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.editvalidation_activity);
21 btnValidation=(Button)findViewById(R.id.btnValidation);
22 etNum=(EditText)findViewById(R.id.etNum);
23
24 btnValidation.setOnClickListener(new View.OnClickListener() {
25
26 @Override
27 public void onClick(View v) {
28 // TODO Auto-generated method stub
29 String num=etNum.getText().toString().trim();
30 if(!num.equals("123"))
31 {
32 etNum.setError("请输入123");
33 }
34 }
35 });
36
37
38 }
39 }
效果展示:
如果点击验证按钮,而第一个文本框输入的不是123,则提示错误信息:
总结
以上就讲解了EditText在实际项目中使用的效果,虽然大部分使用的是TextView的属性设置的效果,但是Android下还有一些其他的供用户输入的控件,可以使用,所以才已这样的继承结构实现属性。
请支持原创,尊重原创,转载请注明出处。谢谢。
本文链接:http://www.cnblogs.com/plokmju/p/Android_UIEditText.html,转载请注明。
相关推荐
本教程笔记将围绕Android的基础UI编程展开,帮助开发者掌握创建美观、功能丰富的用户界面所需的关键技能。 首先,我们从Android布局开始。Android支持多种布局管理器,如线性布局(LinearLayout)、相对布局...
这份"新版Android开发教程+笔记--基础UI编程"涵盖了Android UI设计的基础知识,旨在帮助初学者快速掌握创建吸引人的、功能丰富的用户界面的技能。 首先,Android UI编程的核心是XML布局文件。开发者在res/layout...
### 新版Android开发教程+笔记11--可视化UI设计DroidDraw #### 一、DroidDraw概述 DroidDraw是一款强大的基于Java Swing的Android界面设计器,它可以帮助开发者轻松生成复杂的Android Layout XML文件。通过...
### Android开发教程+笔记十一--可视化UI设计DroidDraw #### 知识点一:DroidDraw简介与功能 DroidDraw是一个基于Java Swing框架的Android界面设计器,能够用于生成复杂的Android界面布局XML文件。DroidDraw的设计...
在Android应用开发中,UI(用户界面)设计是至关重要的,因为它直接影响到用户的体验和交互。本教程将深入探讨...通过新版Android开发教程的笔记10,你将深入理解Android UI编程,并具备构建复杂用户界面的能力。
这篇笔记主要聚焦于基础UI编程的第三部分,涵盖了多个关键知识点,旨在帮助开发者创建美观且功能丰富的Android应用。 首先,Android UI设计的核心是布局管理器(Layout Manager),如线性布局(LinearLayout)、...
### 新版Android开发教程+笔记十一--可视化UI设计DroidDraw #### 1. DroidDraw简介 DroidDraw是一款强大的Android GUI可视化设计器,能够帮助开发者轻松创建复杂的Android Layout XML文件。这款工具基于Java Swing...
在Android开发中,用户界面(UI)编程是开发者必须掌握的核心技能之一。新版的Android开发教程专注于基础UI编程,旨在帮助初学者理解并熟练运用Android系统中的各种UI组件和布局,提升应用程序的交互性和视觉效果。 ...
《新版Android开发教程与学习笔记》是一套全面深入的Android开发资源,涵盖了从入门到进阶的各个环节。这个压缩包包含了一系列PDF文档,详细讲解了Android开发的关键知识点,旨在帮助开发者构建扎实的技能基础。 ...
《Android学习笔记最新版(1-4)》是一份针对初学者精心编撰的教程,旨在帮助新手快速掌握Android开发的基础知识。这份笔记涵盖了从环境搭建到应用开发的全过程,内容丰富,深入浅出,是Android学习者的理想参考资料...
3. **UI设计**:Android使用XML来定义用户界面,包括布局(LinearLayout、RelativeLayout、ConstraintLayout等)、控件(Button、TextView、EditText等)以及事件处理。Material Design是Android的设计语言,提供...
标题《Android学习新手笔记》所涉及的知识点: 1. Android背景知识 - Android系统基于Linux系统开发,拥有开放源码。 - Android系统框架由多个组件构成,其中包括Activity、Intent、Service、ContentProvider、...
在Android开发中,UI(User Interface)基础编程是开发者必须掌握的关键技能之一。这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+...
【Android 学习笔记(1)--永远不变的Hello World】 Android 开发是移动应用开发领域的重要组成部分,尤其对于新手而言,"Hello, World!" 是入门的起点。在这个学习笔记中,我们将探讨如何创建第一个简单的 Android...
在Android开发中,电话拨号器是用户与设备进行通话交互的重要组成部分。本篇学习笔记主要探讨了如何自定义电话拨号器的布局以及如何...在黑马的这期学习笔记中,读者可以通过实践这些内容,进一步提升Android开发技能。
《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...
这些笔记主要讲解了Android用户界面(UI)的设计与实现,包括布局管理器如LinearLayout、RelativeLayout、GridLayout,以及控件的使用,如TextView、Button、EditText等。同时,可能还涵盖了如何动态创建UI,事件...
《新版Android开发教程+笔记九--基础UI编程3.pdf》、《新版Android开发教程+笔记十--基础UI编程4.pdf》、《新版Android开发教程+笔记六--应用3、4 布局.pdf》、《新版Android开发教程+笔记七--基础UI编程2.pdf》和...