看板 AndroidDev 關於我們 聯絡資訊
總算把BMI給搞定了 可以在安卓測試了 寫一下遇到問題的過程 目前是參考網路上的範例發現 會遇到的問題應該是版本的關係 目前我在2013/10/26測試這個調成過後ok了 但是很多涵義還是不懂 第一步是先設定字串 在res\value\string先輸入 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="action_settings">title</string> <string name="app_name">BMI</string> <string name="menu_settings">Settings</string> <string name="title_activity_bmi">BMI</string> <string name="bmi_height">身高 (cm)</string> <string name="bmi_weight">體重 (kg)</string> <string name="bmi_calculate">計算 BMI 值</string> </resources> 我發現 action_settings這行好像是大問題 範例有的沒加 如果不加會導致R.java讀不到 問題很大 想請高手解釋這一行為什麼會影響R.java 接著設定BMI出來以後的advice(建議) 要在 res\value 底下新增 xml 這一個動作好像新版的有更改 <?xml version="1.0" encoding="UTF-8"?> <resources> <string name="advice_light">你該多吃點</string> <string name="advice_average">體型很棒喔</string> <string name="advice_heavy">你該節食了</string> </resources> 接著回到layout 把以下這些程式碼放進去 <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" > <TextView android:id="@+id/textHeight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bmi_height" /> <EditText android:id="@+id/inputHeight" style="editTextStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textHeight" android:inputType="number" /> <TextView android:id="@+id/textWeight" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/inputHeight" android:text="@string/bmi_weight" /> <EditText android:id="@+id/inputWeight" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textWeight" android:ems="10" android:inputType="number" /> <Button android:id="@+id/buttonCalculate" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/inputWeight" android:text="@string/bmi_calculate" /> <TextView android:id="@+id/textResult" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/buttonCalculate" /> <TextView android:id="@+id/textSuggest" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textResult" /> </RelativeLayout> 最後最容易有問題的就是這段 想請高手解釋這段的語言 package com.practice.bmi; import java.text.DecimalFormat; 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 BMI extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bmi); //Listen for button clicks Button button = (Button)findViewById(R.id.buttonCalculate); button.setOnClickListener(calcBMI); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.bmi, menu); return true; } private OnClickListener calcBMI = new OnClickListener() { public void onClick(View v) { DecimalFormat nf = new DecimalFormat("0.00"); EditText fieldheight = (EditText)findViewById(R.id.inputHeight); EditText fieldweight = (EditText)findViewById(R.id.inputWeight); double height = Double.parseDouble(fieldheight.getText().toString())/100; double weight = Double.parseDouble(fieldweight.getText().toString()); double BMI = weight / (height * height); TextView result = (TextView)findViewById(R.id.textResult); result.setText("Your BMI is " + nf.format(BMI)); //Give health advice TextView fieldsuggest = (TextView)findViewById(R.id.textSuggest); if(BMI>25){ fieldsuggest.setText(R.string.advice_heavy); }else if(BMI<20){ fieldsuggest.setText(R.string.advice_light); }else { fieldsuggest.setText(R.string.advice_average); } } -- Every man for himself and God against them all. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.206.59 ※ 編輯: femlro 來自: 118.233.206.59 (10/26 20:42)
givemepass:f大跑來android版玩了喔XD 我來幫你解釋 10/26 22:52