Professional Documents
Culture Documents
Project : TemperatureConverter
View
สําหรับในส่วนของ View ก็จะเป็นการจัด Layout ใน main.xml
<EditText
android:id = "@+id/temperature"
android:layout_width = "280dip"
android:layout_height = "wrap_content"
android:layout_marginTop = "20dip"
android:layout_gravity = "center_horizontal"
android:inputType = "number"
android:hint = "Enter Temperature Here!" >
</EditText>
<TableRow
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:gravity = "center_horizontal" >
<Spinner
android:id = "@+id/input"
android:layout_width = "140dip"
android:layout_height = "wrap_content" >
</Spinner>
<Spinner
android:id = "@+id/output"
android:layout_width = "140dip"
android:layout_height = "wrap_content" >
</Spinner>
</TableRow>
<LinearLayout
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:gravity = "center" >
<TextView
android:id = "@+id/result"
android:layout_width = "250dip"
android:layout_height = "wrap_content"
android:gravity = "center"
android:textSize = "25pt"
android:lines = "1" >
</TextView>
<TextView
android:id = "@+id/unit"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "10pt" >
</TextView>
</LinearLayout>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity = "center" >
<TableRow
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:gravity = "center_horizontal" >
<Spinner
android:id = "@+id/input"
android:layout_width = "140dip"
android:layout_height = "wrap_content" >
</Spinner>
<LinearLayout
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:gravity = "center" >
Code XML ในการจัด Layout ของ LinearLayout สําหรับ การวาง TextView ที่จะแสดงคําตอบ
orientation : ให้อะไรก็ตามที่ใส่เข้าไปใน linearLayout ต่อกันในแนว
width : กว้าง เท่ากับขนาดของ parent ในที่นี้ คือ LinearLayout
height : สูง เท่ากัยขนาดของ parent ในที่นี้ คือ LinearLayout แต่จะถูก ลบ ด้วย ความสูงของข้อมูล
ที่อยู่ก่อนหน้า
<TextView
android:id = "@+id/result"
android:layout_width = "250dip"
android:layout_height = "wrap_content"
android:gravity = "center"
android:textSize = "25pt"
android:lines = "1" >
</TextView>
<TextView
android:id = "@+id/unit"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "10pt" >
</TextView>
package bom.TemperatureConverter;
Method :
Method ในส่วนที่ซ่อน( Encapsulation ) คือกระปวนการในการแปลง หน่วยแต่ละแบบ
โดย Method ในส่วนนี้ เราจะ รับค่าอุณหภูมิมาเป็น double เพื่อให้ง่ายต่อการคํานวน และ
return ค่า มาเป็น String เพื่อให้เอาค่าไปใช้ กับ TextView ได้ทันที จะได้ว่า
//-->Celsius to Other
private static String convertCelsiustoKelvin(double temp){
return Double.toString(temp+273.15 );
}
private static String convertCelsiustoFahrenheit(double temp){
return Double.toString(temp*1.8+32);
}
//-->Kelvin to other
private static String convertKelvintoCelsius(double temp){
return Double.toString(temp-273.15);
}
private static String convertKelvintoFahrenheit(double temp){
return Double.toString((temp-459.67)*1.8);
}
//-->Fahrenheit to other
private static String convertFahrenhitetoCelsius(double temp){
return Double.toString((temp-32)/1.8);
}
private static String convertFahrenhitetoKelvin(double temp){
return Double.toString(temp*1.8+459.67);
}
import bom.TemperatureConverter.TempConv;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
input = (EditText)findViewById(R.id.temperature);
input.setOnKeyListener(onKey);
inputUnit = (Spinner)findViewById(R.id.input);
list = new ArrayAdapter<String>(
this,
android.R.layout.simple_spinner_item,
TempConv.unitList);
list.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
inputUnit.setAdapter(list);
inputUnit.setOnItemSelectedListener(onSelect);
outputUnit = (Spinner)findViewById(R.id.output);
list = new ArrayAdapter<String>(
this,
android.R.layout.simple_spinner_item,
TempConv.unitList);
list.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
outputUnit.setAdapter(list);
outputUnit.setSelection(1);
outputUnit.setOnItemSelectedListener(onSelect);
result = (TextView)findViewById(R.id.result);
unit = (TextView)findViewById(R.id.unit);
}
import bom.TemperatureConverter.TempConv;
EditText input;
Spinner inputUnit,outputUnit;
TextView result,unit;
ArrayAdapter<String> list;
input = (EditText)findViewById(R.id.temperature);
input.setOnKeyListener(onKey);
inputUnit = (Spinner)findViewById(R.id.input);
list = new ArrayAdapter<String>(
this,
android.R.layout.simple_spinner_item,
TempConv.unitList);
list.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
inputUnit.setAdapter(list);
inputUnit.setOnItemSelectedListener(onSelect);
drbomkung@gmail.com