文章目录
- 准备工作
- 一,创建Android Studio项目
- 二,创建活动模块
- 三,设计用户界面
- (一)设置页面布局
- (二)添加标题文本控件
- (三)设计体重输入框
- (四)设计性别选项
- (五)设计按钮和结果存放区
- (六)运行查看效果
- 四,编写活动代码
- 五,运行项目
准备工作
-
搭建开发环境
JDK1.8,Android Studio -
UI界面效果
一,创建Android Studio项目
1,新建Android Studio项目,单击new Project。
2,选择phone and tablet——empty activity。
3,输入项目名称:HeightCalculator,语言选择Java,单击Finish。
4,等待下载全局配置依赖。
5,下载完成,页面效果。
6,单击运行按钮,启动项目,如下效果,成功创建项目。
二,创建活动模块
1,在项目目录右击选择——new——Activity——empty Activity。
2,输入名称:HeightCalculatorActivity
,单击finish按钮,创建活动。
3,创建完成。
三,设计用户界面
(一)设置页面布局
1,进入code页,编写代码。
2,进入design页,可以使用拖动的方式添加布局方式和控件。
3,添加线性布局,根据效果图,页面整体布局为垂直;这里设置为垂直:android:orientation="vertical"
。
(二)添加标题文本控件
源码:
<TextView
android:layout_width="410dp"
android:layout_height="100dp"
android:gravity="center"
android:text="标准身高计算器"
android:textAlignment="center"
android:textSize="30sp"
android:textStyle="bold" />
(三)设计体重输入框
1,根据下面效果图,这是一个水平布局,包含三个控件。
2,首先,先添加一个水平布局,android:orientation="horizontal"
,表示水平布局。
3,在水平布局下添加文本视图控件(相当于标签,显示文本)。
4,添加一个输入框控件,用于接收用户输入的数据,并且给上一个id值,后续编写Java代码接收信息。
5,最后再添加一个文本视图控件,用于显示最后的单位。
(四)设计性别选项
1,分析:从下图中也可发现这是一个水平布局,并且两个单选按钮是绑定在一起的(如不是共同,则性别就可以全选,就失去了单选按钮的特点,出现逻辑错误)。
2,根据分析,此时再添加一个水平布局,二级的布局方式,与体重输入框布局属于同级。
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
</LinearLayout>
3,添加文本视图控件。
<TextView
android:layout_width="150.0dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="请选择你的性别:"
android:textSize="18sp" />
4,添加单选控件组,将两个单选按钮绑定到一起。
<RadioGroup
android:id="@+id/RadioGroup01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</RadioGroup>
5,在控件组中添加两个单选按钮控件。
<RadioButton
android:id="@+id/man"
android:layout_width="50.0dip"
android:layout_height="70.0dip"
android:checked="true"
android:text="男" />
<RadioButton
android:id="@+id/woman"
android:layout_width="50.0dip"
android:layout_height="70.0dip"
android:text="女" />
(五)设计按钮和结果存放区
1,添加水平布局,在布局下添加按钮控件。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/calculator"
android:layout_width="200.0dip"
android:layout_height="wrap_content"
android:layout_marginTop="20.0dip"
android:text="运算 " />
</LinearLayout>
2,添加水平布局,在其中添加文本视图控件用于存放结果(添加id)。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10.0dip" />
</LinearLayout>
(六)运行查看效果
1,右击身高计算器的Java文件,单击运行按钮。
2,弹出如下提示,无法运行(原因是没有配置运行配置文件:AndroidManifest.xml
)。
3,打开AndroidManifest.xml
,设置android:exported="true"
,在单击运行按钮。
4,模拟器显示出正常页面,没有什么问题。
四,编写活动代码
编写HeightCalculatorActivity.java,实现计算标准身高。
package com.example.heightcalculator;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
public class HeightCalculatorActivity extends AppCompatActivity {
private Button calculatorButton;
private EditText weightEditText;
private RadioButton manRadioButton;
private RadioButton womanRadioButton;
private TextView resultTextView;
private static final int EXIT=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_height_calculator);
calculatorButton=(Button)findViewById(R.id.calculator);
weightEditText=(EditText)findViewById(R.id.weight);
manRadioButton=(RadioButton)findViewById(R.id.man);
womanRadioButton=(RadioButton)findViewById(R.id.woman);
resultTextView=(TextView)findViewById(R.id.result);
}
@Override
protected void onStart() {
super.onStart();
registerEvent();
}
private void registerEvent()
{
calculatorButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!weightEditText.getText().toString().trim().equals(""))
{
double weight=Double.parseDouble(weightEditText.getText().toString());
StringBuffer sb=new StringBuffer();
sb.append("------------评估结果----------- \n");
if(manRadioButton.isChecked())
{
sb.append("男性标准身高:");
double result=evaluateHeight(weight,"男");
sb.append((int)result+"(厘米)");
}else if(womanRadioButton.isChecked())
{
sb.append("女性标准身高:");
double result=evaluateHeight(weight,"女");
sb.append((int)result+"(厘米)");
}
resultTextView.setText(sb.toString());
}else
{
showMessage("请输入体重!");
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, EXIT, Menu.NONE, "退出");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==EXIT)
{
finish();//退出程序
}
return super.onOptionsItemSelected(item);
}
private double evaluateHeight(double weight,String sex)
{
double height;
if(sex=="男"){
height=170-(62-weight)/0.6;
}else{
height =158-(52-weight)/0.5;
}
return height;
}
private void showMessage(String message)
{
AlertDialog alert = new AlertDialog.Builder(this).create();
alert.setTitle("系统信息");
alert.setMessage(message);
alert.setButton("确定", (dialog, whichButton) -> {
});
alert.show();
}
}
五,运行项目
1,单击运行按钮。
2,启动成功。
3,输入体重,得出结果。