首页 > 代码库 > 第二章 吸引你的眼球—UI编程(2)
第二章 吸引你的眼球—UI编程(2)
2.1.3文本编辑—编辑框(EditText)
EditText在我们开发中也是经常要用到的组件。比如,要实现一个登录界面,需要用户输入帐号、密码、邮件等信息,这里就需要使用EditText组件来获得用户输入的内容,下面,我们就以一个登录界面为例,来看看EditText是怎么使用的。
1)在布局文件中定义一个TextView(用来响应按钮事件),两个EditText组件(一个用来记录用户名,一个用来记录密码)一个登录按钮和一个取消按钮,代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/name_edittext" android:layout_width="200dp" android:layout_height="wrap_content" android:hint="请输入用户名"/> <EditText android:id="@+id/pwd_edittext" android:layout_width="200dp" android:layout_height="wrap_content" android:password="true" android:hint="请输入密码"/> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:id="@+id/ok_button" android:layout_width="80dp" android:layout_height="wrap_content" android:text="登录"/> <Button android:id="@+id/cancel_button" android:layout_width="80dp" android:layout_height="wrap_content" android:text="取消"/> </LinearLayout> </LinearLayout> |
EditText中android:hint这个属性是当用户没有输入任何内容的时候默认显示的提示信息。当然,我们也可以在代码中轻松地实现,例如:
EditText editView = (EditText)findViewById(R.id.name_edittext); editView.setHint("请输入用户名"); |
而android:password这个属性是用于输入密码之类涉及隐私需要保密的信息。
2)点击“登录”按钮时,判断用户名和密码是否都已输入,若是则在TextView中显示“登录成功”,否则的话显示“请检查输入信息”;点击“取消”按钮时,将TextView和EditText中的文本全部清空,部分代码如下:
okButton = (Button)findViewById(R.id.ok_button); cancelButton = (Button)findViewById(R.id.cancel_button); nameEditText = (EditText)findViewById(R.id.name_edittext); pwdEditText = (EditText)findViewById(R.id.pwd_edittext); statusTextView = (TextView)findViewById(R.id.status_textview); okButton.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) { if(nameEditText.length()==0||pwdEditText.length()==0){ statusTextView.setText("请检查输入信息"); }else{ statusTextView.setText("登录成功"); } } }); cancelButton.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) { nameEditText.setText(""); pwdEditText.setText(""); statusTextView.setText(""); } }); |
我们来看看效果,如图2-6、2-7、2-8所示:
图2-6 初始界面
图2-7 输入信息不完整
图2-8 登录成功
经验分享: 很多时候,EditText组件会默认获得焦点,并弹出软键盘,但是我们并不想要这样的效果。这个时候,可以在布局文件中加入以下代码来避免这样的情况出现: <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:focusableInTouchMode="true" android:focusable="true" /> |
第二章 吸引你的眼球—UI编程(2)