Mobile App Dev 2021W: Tutorial 5: Difference between revisions
Line 1: | Line 1: | ||
==Code== | ==Code== | ||
<syntaxhighlight lang="kotlin" line> | |||
package carleton.comp1601.converter_1a | |||
import android.os.Bundle | |||
import android.text.Editable | |||
import android.text.TextWatcher | |||
import android.widget.EditText | |||
import android.widget.TextView | |||
import androidx.appcompat.app.AppCompatActivity | |||
class MainActivity : AppCompatActivity() { | |||
private lateinit var editTemperature: EditText | |||
private lateinit var result: TextView | |||
override fun onCreate(savedInstanceState: Bundle?) { | |||
super.onCreate(savedInstanceState) | |||
setContentView(R.layout.activity_main) | |||
result = findViewById(R.id.result) | |||
editTemperature = findViewById(R.id.editTemperature) | |||
editTemperature.addTextChangedListener(watcher) | |||
} | |||
private val watcher = object : TextWatcher { | |||
override fun afterTextChanged(s: Editable) { | |||
val Fs = editTemperature.getText().toString() | |||
var F = Fs.toDoubleOrNull() | |||
if (F == null) { | |||
result.setText("Please enter a number to convert.") | |||
} else { | |||
val C = (F - 32.0) * (5.0 / 9.0) | |||
result.setText(String.format("%s Farenheit is %.2f Celsius", Fs, C)) | |||
} | |||
} | |||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { | |||
} | |||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
===res/layout/activity_main.xml=== | ===res/layout/activity_main.xml=== |
Revision as of 21:58, 26 February 2021
Code
package carleton.comp1601.converter_1a
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var editTemperature: EditText
private lateinit var result: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
result = findViewById(R.id.result)
editTemperature = findViewById(R.id.editTemperature)
editTemperature.addTextChangedListener(watcher)
}
private val watcher = object : TextWatcher {
override fun afterTextChanged(s: Editable) {
val Fs = editTemperature.getText().toString()
var F = Fs.toDoubleOrNull()
if (F == null) {
result.setText("Please enter a number to convert.")
} else {
val C = (F - 32.0) * (5.0 / 9.0)
result.setText(String.format("%s Farenheit is %.2f Celsius", Fs, C))
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
}
}
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:orientation="vertical"
android:padding="10sp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editTemperature"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="center"
android:hint="Enter Farenheit"
android:inputType="numberSigned" />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/message"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
res/values/strings.xml
<resources>
<string name="app_name">Temperature Converter</string>
<string name="message">Enter a number please</string>
</resources>