Main Actiity
examunknown
plain_text
3 years ago
11 kB
2
Indexable
//MainActivity "Mphanad Aljhani"
package com.example.tempconverter
import android.R
import android.app.AlertDialog
import android.app.AlertDialog.Builder
import android.content.DialogInterface
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.widget.addTextChangedListener
import com.ayushsb24.tempconverter.databinding.ActivityMainBinding
import java.text.DecimalFormat
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
lateinit var selectedUnit: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val df = DecimalFormat("#.##")//Decimal formatter
selectedUnit = "Fahrenheit"
binding.selectType.setOnClickListener() {
showAlertDialog()
}
binding.editInput.addTextChangedListener() {
val resultText: String
var inputVal = binding.editInput.text.toString()
if (inputVal.isNotEmpty()) {
var doubleInput = inputVal.toDouble()
if(selectedUnit == "Fahrenheit"){
resultText = df.format((doubleInput - 32) * 0.5556)
binding.textResultType.text = "Celsius"
}else{
resultText = df.format((doubleInput *1.8)+32)
binding.textResultType.text = "Fahrenheit"
}
binding.textResult.text = resultText
}
}
}
private fun showAlertDialog() {
val alertDialog: Builder = Builder(this@MainActivity)
alertDialog.setTitle("Select Unit") //Setting title for alertBox
val items = arrayOf("Fahrenheit", "Celsius")
val checkedItem = -1
alertDialog.setSingleChoiceItems(items, checkedItem,
DialogInterface.OnClickListener { dialog, which ->
selectedUnit = items[which]
binding.textType.setText(items[which])
})
alertDialog.setPositiveButton(
R.string.ok,
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
})
val alert: AlertDialog = alertDialog.create()
alert.setCanceledOnTouchOutside(false)
alert.show()
}
}
private fun showAlertDialog() {
val alertDialog: Builder = Builder(this@MainActivity)
alertDialog.setTitle("Select Unit") //Setting title for alertBox
val items = arrayOf("Fahrenheit", "Celsius") //Array to contained Options
val checkedItem = -1
alertDialog.setSingleChoiceItems(items, checkedItem,
DialogInterface.OnClickListener { dialog, which ->
selectedUnit = items[which]
binding.textType.setText(items[which])
})
alertDialog.setPositiveButton(
R.string.ok,
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
})
val alert: AlertDialog = alertDialog.create()
alert.setCanceledOnTouchOutside(false)
alert.show()
}//MainActivity
package com.example.tempconverter
import android.R
import android.app.AlertDialog
import android.app.AlertDialog.Builder
import android.content.DialogInterface
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.widget.addTextChangedListener
import com.ayushsb24.tempconverter.databinding.ActivityMainBinding
import java.text.DecimalFormat
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
lateinit var selectedUnit: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val df = DecimalFormat("#.##")//Decimal formatter
selectedUnit = "Fahrenheit"
binding.selectType.setOnClickListener() {
showAlertDialog()
}
binding.editInput.addTextChangedListener() {
val resultText: String
var inputVal = binding.editInput.text.toString()
if (inputVal.isNotEmpty()) {
var doubleInput = inputVal.toDouble()
if(selectedUnit == "Fahrenheit"){
resultText = df.format((doubleInput - 32) * 0.5556)
binding.textResultType.text = "Celsius"
}else{
resultText = df.format((doubleInput *1.8)+32)
binding.textResultType.text = "Fahrenheit"
}
binding.textResult.text = resultText
}
}
}
private fun showAlertDialog() {
val alertDialog: Builder = Builder(this@MainActivity)
alertDialog.setTitle("Select Unit") //Setting title for alertBox
val items = arrayOf("Fahrenheit", "Celsius")
val checkedItem = -1
alertDialog.setSingleChoiceItems(items, checkedItem,
DialogInterface.OnClickListener { dialog, which ->
selectedUnit = items[which]
binding.textType.setText(items[which])
})
alertDialog.setPositiveButton(
R.string.ok,
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
})
val alert: AlertDialog = alertDialog.create()
alert.setCanceledOnTouchOutside(false)
alert.show()
}
}
private fun showAlertDialog() {
val alertDialog: Builder = Builder(this@MainActivity)
alertDialog.setTitle("Select Unit") //Setting title for alertBox
val items = arrayOf("Fahrenheit", "Celsius") //Array to contained Options
val checkedItem = -1
alertDialog.setSingleChoiceItems(items, checkedItem,
DialogInterface.OnClickListener { dialog, which ->
selectedUnit = items[which]
binding.textType.setText(items[which])
})
alertDialog.setPositiveButton(
R.string.ok,
DialogInterface.OnClickListener { dialog, which ->
dialog.dismiss()
})
val alert: AlertDialog = alertDialog.create()
alert.setCanceledOnTouchOutside(false)
alert.show()
}
// 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">
<ImageView
android:id="@+id/imgBg"
android:layout_width="0dp"
android:layout_height="0dp"
android:contentDescription="@string/backgroundimge_des"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:srcCompat="@drawable/red_bg" />
<TextView
android:id="@+id/textAppHeading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/raleway"
android:text="@string/temperature_converter"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="@+id/imgBg"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/imgBg"
app:layout_constraintTop_toTopOf="@+id/imgBg" />
<EditText
android:id="@+id/editInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="42dp"
android:background="@android:color/transparent"
android:ems="10"
android:fontFamily="sans-serif-light"
android:hint="@string/eidt_hint"
android:inputType="numberDecimal"
android:maxLength="6"
android:textAlignment="center"
android:textColor="@color/white"
android:textColorHint="#99FFFFFF"
android:textSize="48sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/selectType" />
<LinearLayout
android:id="@+id/selectType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:gravity="center_vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textAppHeading">
<TextView
android:id="@+id/textType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/raleway"
android:text="@string/fahrenheit"
android:textAllCaps="true"
android:layout_marginHorizontal="8dp"
android:textColor="@color/white"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textAppHeading" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_margin="0dp"
android:src="@drawable/ic_arrow_down"
app:srcCompat="@drawable/ic_arrow_down" />
</LinearLayout>
<TextView
android:id="@+id/textResultType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="80dp"
android:fontFamily="@font/raleway"
android:text="@string/celsius"
android:textAllCaps="true"
android:textColor="@color/red_500"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="64dp"
android:fontFamily="sans-serif-light"
android:text="@string/textResult"
android:textAlignment="center"
android:textColor="@color/red_500"
android:textColorHint="#99FFFFFF"
android:textSize="48sp"
app:layout_constraintBottom_toTopOf="@+id/textResultType"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>vEditor is loading...