第1章 Android应用程序开发步骤
通过边学习边记录的方式了解Android开发应用程序的方法。
1.1 建立界面
建立界面主要是通过编写XML文档。
1.1.1 应用程序的主界面为res/layout/main.xml
main.xml文件的内容为界面的主要部分。创建Android工程后可以首先修改此文件,修改的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/us_height"
/>
<EditText android:id="@+id/feet"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
<EditText android:id="@+id/inch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pound"
/>
<EditText android:id="@+id/weight"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:inputType="numberDecimal"
/>
<Button android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/bmi_btn"
/>
<TextView android:id="@+id/result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text=""
/>
<TextView android:id="@+id/suggest"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
</LinearLayout>
在main.xml中有些变量没有进行定义,在string.xml文件中对其进行定义,定义格式如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, aBMI!</string>
<string name="app_name">aBMI</string>
<string name="us_height">Height</string>
<string name="pound">Weight(lbs)</string>
<string name="bmi_btn">Calc BMI</string>
<string name="bmi_result">Your BMI is...</string>
</resources>
预览该文件生成界面的效果如图1-1和图1-2所示。模拟之前首先建立模拟器,然后执行Run|Run Configuration选取对应的模拟器进行仿真。最终的应用程序界面如图1-3所示。
图1-1 应用程序开机界面
图1-2 应用程序Home界面
图1-3 应用程序界面
1.1.2 编写执行代码
执行代码为aBMI.java。其内容如下:
package abmi.newpost.com;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class aBMI extends Activity {
private static final String TAG = "aBmi";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
setListensers();
}
private Button button_calc;
private EditText field_feet;
private EditText field_inch;
private EditText field_weight;
private TextView view_result;
private TextView view_suggest;
private void findViews(){
Log.d(TAG, "find Views");
button_calc = (Button)findViewById(R.id.submit);
field_feet = (EditText) findViewById(R.id.feet);
field_inch = (EditText) findViewById(R.id.inch);
field_weight = (EditText) findViewById(R.id.weight);
view_result = (TextView) findViewById(R.id.result);
view_suggest = (TextView) findViewById(R.id.suggest);
}
private void setListensers(){
Log.d(TAG, "set Listensers");
button_calc.setOnClickListener(calcUsBMI);
}
private Button.OnClickListener calcUsBMI = new Button.OnClickListener(){
public void onClick(View v){
DecimalFormat nf = new DecimalFormat("0.00");
double height = (Double.parseDouble(field_feet.getText().toString())*12+Double.parseDouble(field_inch.getText().toString()))*2.54/100;
double weight = Double.parseDouble(field_weight.getText().toString())*0.45359;
double BMI = weight /(height*height);
view_result.setText(getText(R.string.bmi_result)+nf.format(BMI));
}
};
}
写完代码再运行模拟器效果如图1-4所示。
图1-4 执行运算结果。