移動開發技術(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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/297610.html
標籤:其他
上一篇:Android CameraX使用,預覽、拍照、獲取靜態影像
下一篇:【Flutter】應用開發筆記
