重构Refactor的小例子

package com.example.ex_templete;


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;


import com.example.ex_templete.R;


public class Bmi extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


initUI();


}


private void initUI() {

// Listen for button clicks

Button button = (Button) findViewById(R.id.submit);

button.setOnClickListener(calcBMI);

fieldheight = (EditText) findViewById(R.id.height);

fieldweight = (EditText) findViewById(R.id.weight);

result = (TextView) findViewById(R.id.result);

fieldsuggest = (TextView) findViewById(R.id.suggest);

}


private OnClickListener calcBMI = new OnClickListener() {

@Override

public void onClick(View v) {

DecimalFormat nf = new DecimalFormat("0.00");

double height = Double

.parseDouble(fieldheight.getText().toString()) / 100;

double weight = Double

.parseDouble(fieldweight.getText().toString());

double BMI = weight / (height * height);


result.setText("Your BMI is " + nf.format(BMI));


// Give health advice

if (BMI > 25) {

fieldsuggest.setText("太肥啦");

} else if (BMI < 20) {

fieldsuggest.setText("很骨感");

} else {

fieldsuggest.setText("身材不错");

}

}

};

private EditText fieldheight;

private EditText fieldweight;

private TextView result;

private TextView fieldsuggest;

}



xml中只需要两个editText,两个textview,一个按钮即可

<RelativeLayout 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="com.example.ex_templete.MainActivity" >


    <Button

        android:id="@+id/submit"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_centerHorizontal="true"

        android:layout_marginBottom="134dp"

        android:text="提交" />


    <EditText

        android:id="@+id/height"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:ems="10" />


    <EditText

        android:id="@+id/weight"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/height"

        android:layout_below="@+id/height"

        android:layout_marginTop="28dp"

        android:ems="10" >


        <requestFocus />

    </EditText>


    <TextView

        android:id="@+id/result"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/weight"

        android:layout_below="@+id/weight"

        android:layout_marginTop="30dp"

        android:text="Large Text"

        android:textAppearance="?android:attr/textAppearanceLarge" />


    <TextView

        android:id="@+id/suggest"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignLeft="@+id/result"

        android:layout_below="@+id/result"

        android:layout_marginTop="25dp"

        android:text="Large Text"

        android:textAppearance="?android:attr/textAppearanceLarge" />


</RelativeLayout>


你可能感兴趣的:(重构Refactor的小例子)