2019独角兽企业重金招聘Python工程师标准>>>
前面的已经将BMI应用程序的,基本摸样勾画了出来,现在我们准备将BMI的处理程序进行一个简单的优化,这里的优化遵循MVC的思想,个人也比较喜欢这种架构思想因为很容易将程序分块理解,大概思路是将其分成三块,一是:获取程序所需的组件信息,二是:添加相应的事件,三是:结果的展示
优化后的代码如下所示:
package pz.soft.chen;import java.text.DecimalFormat;import android.app.Activity;
import android.os.Bundle;
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 {/***利用MVC思想,将程序重构*将程序分成三个部分*1.获取控件*2.添加事件*3.显示内容 * */private double height = 0;private double weight = 0;private EditText tt1 = null;private EditText tt2 = null;private Button bt1 = null;private TextView bmi_Result = null;private TextView bmi_Suggest = null; @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViews();addEvent();}//获取程序所需控件public void findViews(){tt1 = (EditText)findViewById(R.id.tt1);tt2 = (EditText)findViewById(R.id.tt2);bt1 = (Button)findViewById(R.id.bt1);bmi_Result = (TextView)findViewById(R.id.tv3);bmi_Suggest = (TextView)findViewById(R.id.tv4);} //为程序添加事件public void addEvent(){bt1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {DecimalFormat df = new DecimalFormat("0.0");//获取身高height = Double.parseDouble(tt1.getText().toString())/100;//获取体重weight = Double.parseDouble(tt2.getText().toString());//计算BMI的值double BMI = weight/(height*height);bmi_Result.setText("your BMI is:" + df.format(BMI));//根据BMI结果值,选择应该提示的建议if(BMI > 25){bmi_Suggest.setText(R.string.advice_heavy);}else if(BMI < 20){bmi_Suggest.setText(R.string.advice_light);}else{bmi_Suggest.setText(R.string.advice_average);}}});}}
优化之后,程序的结构是不是看着舒服和清晰多了呢