移动开发技术(Android)——实验3 Android常用基本控件(一)
- 一、实验目的
- 二、实验内容
- 1.信息登记
- 2.用户登录
- 3.简易计算器
- 4.三角形
一、实验目的
- 掌握在XML文件中添加控件的语法格式;
- 掌握控件的常用通用属性;
- 掌握Java代码中获取控件的方法;
- 熟悉文本框、编辑框、普通按钮和图片按钮的常用属性和方法。
- 掌握Button和ImageButton点击事件实现的几种方式。
- 熟悉Toast的使用。
二、实验内容
1.信息登记
创建一个Android项目,项目名称为“shiyan0301_信息登记_学生姓名”,要求:
- 界面构成:7个文本框分别用于显示学生学号、姓名、性别,出生年月、专业班级、电子邮箱和登记信息;6个编辑框,分别用于输入学生学号、姓名、性别,出生年月、专业班级、电子邮箱;两个普通按钮“登记”和“重置”。
- 程序功能:
①单击“登记”按钮时,将用户输入的信息显示在一个登记信息文本框中;
②单击“重置”按钮时,清空编辑框中输入的信息。
布局xml代码.......................................
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:columnCount="3">
<TextView
android:id="@+id/num_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="学号" />
<EditText
android:id="@+id/num_ET"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/name_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名" />
<EditText
android:id="@+id/name_ET"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/sex_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别" />
<EditText
android:id="@+id/sex_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/birthday_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="出生年月" />
<EditText
android:id="@+id/birthday_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/class_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="专业班级" />
<EditText
android:id="@+id/class_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/mail_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电子邮箱" />
<EditText
android:id="@+id/mail_EV"
android:layout_columnSpan="2"
android:autoLink="email"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/information_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登记信息" />
<EditText
android:id="@+id/information_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/register_BT"
android:text="登记"
android:layout_width="wrap_content"/>
<Button
android:id="@+id/request_BT"
android:text="重置"
android:layout_width="wrap_content"/>
</GridLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText num,name,sex,birthday,department,mail,information;
Button register,request;
String String_num,String_name,String_sex,String_birthday,String_department,String_mail,String_information;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num=(EditText) findViewById(R.id.num_ET);
name=(EditText) findViewById(R.id.name_ET);
sex=(EditText) findViewById(R.id.sex_EV);
birthday=(EditText) findViewById(R.id.birthday_EV);
department=(EditText) findViewById(R.id.class_EV);
mail=(EditText) findViewById(R.id.mail_EV);
information=(EditText) findViewById(R.id.information_EV);
register=(Button) findViewById(R.id.register_BT);
request=(Button) findViewById(R.id.request_BT);
register.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String_num=num.getText().toString();
String_name=name.getText().toString();
String_sex=sex.getText().toString();
String_birthday=birthday.getText().toString();
String_department=department.getText().toString();
String_mail=mail.getText().toString();
information.setText(String_num+" "+String_name+" "+String_sex+" "+String_birthday+" "+String_department+" "+String_mail);
}
});
request.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num.setText("");
name.setText("");
sex.setText("");
birthday.setText("");
department.setText("");
mail.setText("");
information.setText("");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2.用户登录
创建一个Android项目,项目名称为“shiyan0302_用户登录_学生姓名”,要求:
- 界面构成:2个文本框,分别用来显示“用户名:”、“密码:”;2个编辑框,分别用来输入用户名和密码信息,要求密码不能以明文方式显示;1个普通按钮“登录”。
- 程序功能:单击“登录”按钮时,应实现以下功能:
①判断用户名和密码输入不为空,若为空,则给出Toast提示信息;
②若用户名为学生自己的姓名,且密码为学生学号,则给出Toast提示信息“登录成功!”
③若用户名不是学生自己的姓名,或密码不是学生自己的学号,则给出Toast提示信息“用户名或密码错误”,并将编辑框清空。
④若输入错误次数超过3次,则退出程序。(提示,使用finish()方法)
布局xml代码.......................................
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill"
android:columnCount="2"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:stretchColumns="1"
tools:context=".MainActivity" >
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名" />
<EditText
android:id="@+id/userName_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 码" />
<EditText
android:id="@+id/passWord_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
</TableRow>
<Button
android:id="@+id/login_BT"
android:text="登录" />
<TextView
android:text="用户名:180000,密码:0302"
android:textSize="20sp" />
</TableLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText userName,passWord;
Button login;
String userName_St,passWord_St;
int num=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userName=(EditText) findViewById(R.id.userName_ET);
passWord=(EditText) findViewById(R.id.passWord_ET);
login=(Button) findViewById(R.id.login_BT);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num++;
userName_St=userName.getText().toString();
passWord_St=passWord.getText().toString();
if(userName_St.isEmpty()||passWord_St.isEmpty()){
Toast toast = Toast.makeText(MainActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT);
toast.show();
if(num>3){
num=0;
finish();
}
}else if(userName_St.equals("180000")&&passWord_St.equals("0302")){
Toast toast = Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT);
toast.show();
num=0;
}else{
Toast toast = Toast.makeText(MainActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT);
toast.show();
if(num>3){
num=0;
finish();
}
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
3.简易计算器
创建一个Android项目,项目名称为“shiyan0303_简易计算器_学生姓名”,要求:
- 界面构成:3个文本框,分别用来显示“运算数一”、“运算数二”、“计算结果”;2个编辑框,分别用来输入两个运算数;4个普通按钮“加”、“减”、“乘”、“除”。
- 程序功能:单击“加”、“减”、“乘”、“除”按钮时,实现两个运算数的相应数学运算,并将结果显示在“计算结果”文本框中。
布局xml代码.......................................
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/num1_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运算数一" />
<EditText
android:id="@+id/num1_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/num2_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运算数二" />
<EditText
android:id="@+id/num2_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/outcome_TV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="2"
android:gravity="center_horizontal"
android:text="计算结果"
android:textSize="25dp" />
<Button
android:id="@+id/add_BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="加" />
<Button
android:id="@+id/sub_BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="减" />
<Button
android:id="@+id/mul_BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="乘" />
<Button
android:id="@+id/div_BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="除" />
</GridLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView outcome;
EditText num1,num2;
Button add,sub,mul,div;
double d1,d2;
String num11,num22;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num1=(EditText) findViewById(R.id.num1_ET);
num2=(EditText) findViewById(R.id.num2_ET);
outcome=(TextView) findViewById(R.id.outcome_TV);
add=(Button) findViewById(R.id.add_BT);
sub=(Button) findViewById(R.id.sub_BT);
mul=(Button) findViewById(R.id.mul_BT);
div=(Button) findViewById(R.id.div_BT);
add.setOnClickListener(new OnListener());
sub.setOnClickListener(new OnListener());
mul.setOnClickListener(new OnListener());
div.setOnClickListener(new OnListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class OnListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num11=num1.getText().toString();
d1 = Double.parseDouble(num11);
num22=num2.getText().toString();
d2 = Double.parseDouble(num22);
if(v.getId()==R.id.add_BT){
double all=d1+d2;
outcome.setText(all+"");
}else if(v.getId()==R.id.sub_BT){
double all=d1-d2;
outcome.setText(all+"");
}else if(v.getId()==R.id.mul_BT){
double all=d1*d2;
outcome.setText(all+"");
}else if(v.getId()==R.id.div_BT){
double all=d1/d2;
outcome.setText(all+"");
}else{
}
}
}
}
4.三角形
创建一个Android项目,项目名称为“shiyan0304_三角形_学生姓名”,要求:
- 界面构成:3个文本框,分别用来显示“边A”、“边B”、“边C”;3个编辑框,分别用来输入三角形的三边;3个普通按钮“计算周长”、“计算面积”、“重置”。
- 程序功能:
①单击“计算周长”按钮时,将三角形的周长显示在Toast提示中;
②单击“计算面积”按钮时,将三角形的周长显示在Toast提示中;
③单击“重置”按钮,清空编辑框中输入的信息。
布局xml代码.......................................
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="3"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:text="边A" />
<EditText
android:id="@+id/A"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:text="边B" />
<EditText
android:id="@+id/B"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:text="边C" />
<EditText
android:id="@+id/C"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal" />
<Button
android:id="@+id/reset"
android:layout_width="wrap_content"
android:onClick="resetClick"
android:text="重置" />
<Button
android:id="@+id/circumference"
android:layout_width="wrap_content"
android:onClick="circumferenceClick"
android:text="计算周长" />
<Button
android:id="@+id/area"
android:layout_width="wrap_content"
android:onClick="areaClick"
android:text="计算面积" />
</GridLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText A,B,C;
Button reset,circumference,area;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
A=(EditText) findViewById(R.id.A);
B=(EditText) findViewById(R.id.B);
C=(EditText) findViewById(R.id.C);
reset=(Button) findViewById(R.id.reset);
circumference=(Button) findViewById(R.id.circumference);
area=(Button) findViewById(R.id.area);
}
public void resetClick(View view){
A.setText("");
B.setText("");
C.setText("");
Toast toast = Toast.makeText(MainActivity.this,"已清空", Toast.LENGTH_SHORT);
toast.show();
}
public void circumferenceClick(View view){
String sideA=A.getText().toString();
String sideB=B.getText().toString();
String sideC=C.getText().toString();
double sA=Double.parseDouble(sideA);
double sB=Double.parseDouble(sideB);
double sC=Double.parseDouble(sideC);
Toast toast = Toast.makeText(MainActivity.this,sA+sB+sC+"", Toast.LENGTH_SHORT);
toast.show();
}
public void areaClick(View view){
String sideA=A.getText().toString();
String sideB=B.getText().toString();
String sideC=C.getText().toString();
double sA=Double.parseDouble(sideA);
double sB=Double.parseDouble(sideB);
double sC=Double.parseDouble(sideC);
double p=(sA+sB+sC)/2;
double s=Math.sqrt(p*(p-sA)*(p-sB)*(p-sC));
Toast toast = Toast.makeText(MainActivity.this,s+"", Toast.LENGTH_SHORT);
toast.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}