Main Actiity

exam
 avatar
unknown
plain_text
2 years ago
11 kB
1
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>v
Editor is loading...