prac_5(AMP)
Practical 5
a) Login form
b) Implicit & explicit content
5A_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/imageView"
android:layout_width="185dp"
android:layout_height="132dp"
android:layout_marginStart="109dp"
android:layout_marginTop="117dp"
android:layout_marginEnd="117dp"
android:layout_marginBottom="54dp"
app:layout_constraintBottom_toTopOf="@+id/editText1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.716"
app:srcCompat="@drawable/album" />
<EditText
android:id="@+id/editText1"
android:layout_width="225dp"
android:layout_height="48dp"
android:hint="Username"
android:inputType="text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.405" />
<EditText
android:id="@+id/editText2"
android:layout_width="225dp"
android:layout_height="48dp"
android:hint="Password"
android:inputType="numberPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.53"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.606" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="submit"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.797" />
</androidx.constraintlayout.widget.ConstraintLayout>
5A_MainActivity.kt
package com.example.practical5_6_7_8
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.Settings
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val usernameEditText = findViewById<EditText>(R.id.editText1)
val passwordEditText = findViewById<EditText>(R.id.editText2)
val loginButton = findViewById<Button>(R.id.button)
val correctUsername = "admin"
val correctPassword = "1234"
loginButton.setOnClickListener {
val enteredUsername = usernameEditText.text.toString().trim()
val enteredPassword = passwordEditText.text.toString().trim()
when {
enteredUsername.isEmpty() -> {
usernameEditText.error = "Username cannot be empty"
}
enteredPassword.isEmpty() -> {
passwordEditText.error = "Password cannot be empty"
}
enteredUsername == correctUsername && enteredPassword ==
correctPassword -> {
Toast.makeText(this, "Login Successful!",
Toast.LENGTH_SHORT).show()
val explicitintent = Intent(this, MainActivity2::class.java)
startActivity(explicitintent)
finish() // Finish login activity so user can't go back
}
else -> {
Toast.makeText(this, "Invalid Username or Password",
Toast.LENGTH_SHORT).show()
}
}
}}
}
5A_Activity_main2.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=".MainActivity2">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="162dp"
android:layout_marginTop="239dp"
android:layout_marginEnd="192dp"
android:layout_marginBottom="337dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
5A_MainActivity2.kt
package com.example.practical5_6_7_8
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
class MainActivity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
val welcomeText = findViewById<TextView>(R.id.textView1)
welcomeText.text = "Welcome to Home Page!"
}
}
PRACTICAL 5B
5B_menuoption.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="Copy"
android:id="@+id/copy"
android:icon="@drawable/copy_icon"
app:showAsAction="ifRoom"
/>
<item
android:id="@+id/download"
android:icon="@drawable/download_icon"
app:showAsAction="never"
android:title="Download" />
<item
app:showAsAction="always"
android:id="@+id/settings"
android:icon="@drawable/setting_icon"
android:title="Settings" />
<item
android:id="@+id/print"
android:title="Print"
android:icon="@drawable/print_icon"
app:showAsAction="withText"/>
<item
android:id="@+id/paste"
android:title="Paste"
android:icon="@drawable/paste_icon"
app:showAsAction="ifRoom"/>
</menu>
5B_themes.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.Practical5_6_7_8" parent="Theme.Material3.DayNight">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.Practical5_6_7_8" parent="Base.Theme.Practical5_6_7_8" />
</resources>
5B_MainActivity.kt
package com.example.practical5_6_7_8
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.Settings
import android.view.Menu
import android.view.MenuItem
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menuoption, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.copy -> {
Toast.makeText(this, "702_Copy Selected", Toast.LENGTH_SHORT).show()
}
R.id.download -> {
Toast.makeText(this, "702_Download selected",Toast.LENGTH_SHORT).show()
}
R.id.print -> {
Toast.makeText(this,"702_Print selected ", Toast.LENGTH_SHORT).show()
}
R.id.paste -> {
Toast.makeText(this, "702_Paste selected",Toast.LENGTH_SHORT).show()
}
R.id.settings -> {
Toast.makeText(this, "702_Settings selected",Toast.LENGTH_SHORT).show()
}
else -> return super.onOptionsItemSelected(item)
}
return true
}
}
5B_Strings.xml
<resources>
<string name="app_name">Menu Options - 724</string>
</resources>
Comments
Post a Comment