购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 基础控件

在Android中,最常用的控件主要包括TextView控件、EditView控件和Button控件。下面对其分别进行介绍。

4.1.1 TextView控件

TextView类继承自View类,TextView控件的功能是向用户显示文本的内容,但不允许编辑,而其子类EditText允许用户进行编辑。

创建TextView控件最常用的方法就是在Layout文件中定义,下面的代码定义了一个文本内容为“欢迎选择DIY”,宽度和高度都是内容的宽和高。

<TextView

android:layout_width="wrap_content"

android:layout_depth="wrap_content"

android:text="欢迎选择DIY" />

TextView常用属性见表4-1。

表4-1 TextView常用属性

续表

4.1.2 EditText控件

EditText和TextView的功能基本类似,它们之间的主要区别在于EditText提供了可编辑的文本框。比如,要实现一个登录界面,需要用户输入账号、密码等信息,然后获得用户输入的内容,把它交给服务器来判断。下面的代码定义了一个提示内容为“用户名”,id为username的控件:

<EditText

android:id="@+id/username"

android:layout_width="match_parent"

android:layout_depth="wrap_content"

android:hint="用户名"/>

EditText的常用属性见表4-2。

表4-2 EditText常用属性

续表

4.1.3 Button控件及监听事件

Button继承了TextView。它的功能就是提供一个按钮,该按钮可以供用户单击,当用户对按钮进行操作时,触发相应事件。

所谓事件,就是用户与界面交互时所触发的操作,如鼠标的单击、双击、长按等。在Android中,这些事件都将被传送到用来专门处理事件的事件处理器。在Java程序中,实现与用户交互功能的控件都需要通过事件进行处理,需要指定控件所用的事件监听器。同理,Android也需要设置事件监听器。

下面通过一个示例程序来处理Button的事件。

单击Button,执行相关操作,如显示用户输入的用户名和密码,如图4-5所示。

图4-5

在Android中需要设置Button的监听事件,首先在Main Activty.Java中添加三个控件变量。

private Button logindemo;

private EditText username;

private EditText password;

按钮的监听主要有4种方法。

(1)内部定义1

在loginButton的setOnClickLister方法中直接定义事件,先使用getText方法获取用户名和密码,然后使用Toast进行消息的推送。

loginButton=(Button)findViewById(R.id.login_button);

usernameET=(EditText)findViewById(R.id.username);

passwordET=(EditText)findViewById(R.id.password);

loginButton.setOnClickListener(new Button.OnClickListener(){

@Override

public void onClick(View v){

String msg=" 您输入的用户名是"+usernameET.getText()+",密码是"+passwordET.getText();

Toast.makeText(LoginActivity.this,msg,Toast.LENGTH_SHORT).show();

}

});

上面的示例中使用了Toast进行了信息的显示。Toast是Android提供的“快显讯息”类,它的用途很多,使用起来非常简单。例如,当退出应用程序时,可以用它显示用户“需要更新”,或者在输入框中输入文本时,可以提示用户“最多输入20个字符”等。

Toast中有两个关于Toast显示时间长短的常量,如表4-3所示。

表4-3 Toast常量

(2)内部定义2

与第1种方式略有区别,在loginButton的setOnClickLister方法中使用listener,而listener是在后面定义的OnClickListener类型的对象。

loginButton.setOnClickListener(listener);

Button.OnClickListener listener=new Button.OnClickListener(){//创建监听对象

public void onClick(View v){

String msg="您输入的用户名是"+usernameET.getText()+",密码是"+passwordET.getText();

Toast.makeText(LoginActivity.this,msg,Toast.LENGTH_SHORT).show();

}

};

(3)接口方式

在类的声明中加入 implements View.OnClickListener,然后使用 loginButton.setOnClick Listener(this)进行监听,最后定义onClick方法进行监听事件的处理。此种方法适合Activity中有多个控件需要监听的情景,根据传入的View的ID进行不同控件事件的监听。

public class LoginActivity extends AppCompatActivity implements View.OnClickListener{}

loginButton.setOnClickListener(this);

public void onClick(View v){

switch(v.getId()){

case R.id.login_button:

String msg="您输入的用户名是"+usernameET.getText()+",密码是"+passwordET.getText();

Toast.makeText(LoginActivity.this,msg,Toast.LENGTH_SHORT).show();

break;

}

}

(4)android:onClick

直接在按钮的布局代码中添加onClick属性,然后在Activity中定义相应方法即可。

<Button

android:id="@+id/login_button"

android:layout_width="wrap_content"

android:layout_depth="wrap_content"

android:text="登录"

android:onClick="onLoginClick"/>

public void onLoginClick(View v){

String msg=" 您输入的用户名是"+usernameET.getText()+",密码是"+passwordET.getText();

Toast.makeText(LoginActivity.this,msg,Toast.LENGTH_SHORT).show();

}

4.1.4 登录实例

【例4-1】 以登录界面为例,构建LoginDemo 应用,效果如图4-1 所示。

实现步骤如下:

(1)创建新项目:项目名称LoginDemo,公司域名neusoft.edu.cn,如图4-6所示。Activity的配置如图4-7所示。

图4-6 创建LoginDemo

图4-7 配置Activity

(2)添加控件:在content_login.xml中添加用户名、密码和登录按钮,其中用户名和密码使用EditText控件,登录按钮使用Button控件,布局代码如下:

<TextView

android:layout_width="wrap_content"

android:layout_depth="wrap_content"

android:text="欢迎选择DIY" />

<EditText

android:id="@+id/username"

android:layout_width="match_parent"

android:layout_depth="wrap_content"

android:hint=" 用户名"/>

<EditText

android:id="@+id/password"

android:layout_width="match_parent"

android:layout_depth="wrap_content"

android:hint="密码"

android:password="true"/>

<Button

android:id="@+id/login_button"

android:layout_width="wrap_content"

android:layout_depth="wrap_content"

android:text="登录" />

(3)Design界面:单击“Design”选项卡,界面如图4-8所示。

图4-8 content_login.xml的

(4)运行该项目,查看结果。 HJ3KRl2iMq2EQW8O8TjVht8/UswL2zlpzjEnnRch+yeqTjhgVgRLeft8hblCKi5u

点击中间区域
呼出菜单
上一章
目录
下一章
×