Академический Документы
Профессиональный Документы
Культура Документы
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.io.*
inputPlainText = findViewById(R.id.plain_text)
outputTextView = findViewById(R.id.text_view)
passview = findViewById(R.id.passview)
passtext = findViewById(R.id.passtext)
sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE)
}
}
Листинг PassActivity.kt
package com.example.lab5
import android.content.Intent
import android.content.SharedPreferences
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.EditText
import android.widget.Toast
attempts.visibility = View.VISIBLE
numberOfAttempts.visibility = View.VISIBLE
numberOfAttempts.text = numberOfRemainingLoginAttempts.toString()
if (numberOfRemainingLoginAttempts == 0) {
login.isEnabled = false
loginLocked.visibility = View.VISIBLE
loginLocked.setBackgroundColor(Color.RED)
loginLocked.text = "Вход заблокирован!!!"
}
}
}
Листинг 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">
<ScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="336dp"
android:layout_height="443dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:fillViewport="true"
android:maxWidth="300dp"
android:scrollbars="vertical"
android:singleLine="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/save_button"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:scrollbars="vertical"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ScrollView>
<EditText
android:id="@+id/plain_text"
android:layout_width="305dp"
android:layout_height="38dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="112dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.515"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/wirte_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:layout_marginTop="18dp"
android:text="@string/write"
android:onClick="write"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/plain_text" />
<Button
android:id="@+id/read_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginEnd="52dp"
android:text="@string/read"
android:onClick="read"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/plain_text" />
<Button
android:id="@+id/save_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="140dp"
android:onClick="save"
android:text="@string/save"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/passview"
android:layout_width="114dp"
android:layout_height="44dp"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="46dp"
android:layout_marginBottom="15dp"
android:text="@string/student1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="46dp"
android:layout_marginBottom="15dp"
android:text="@string/student2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/passtext"
android:layout_width="99dp"
android:layout_height="46dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="24dp"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Листинг activity_pass.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/Login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/authorization"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/user_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Login"
android:layout_alignParentLeft="true"
android:layout_marginLeft="110dp"
android:layout_marginTop="94dp"
android:text="@string/user"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edit_user"
android:layout_width="119dp"
android:layout_height="wrap_content"
android:layout_below="@+id/Login"
android:layout_alignBottom="@+id/user_text"
android:layout_marginLeft="33dp"
android:layout_marginTop="79dp"
android:layout_marginBottom="-20dp"
android:layout_toRightOf="@+id/user_text"
android:hint="@string/enter_user">
<requestFocus />
</EditText>
<TextView
android:id="@+id/password_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/user_text"
android:layout_alignLeft="@+id/user_text"
android:layout_marginLeft="0dp"
android:layout_marginTop="50dp"
android:text="@string/pass"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edit_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/edit_user"
android:layout_alignRight="@+id/edit_user"
android:layout_alignBottom="@+id/password_text"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginBottom="-14dp"
android:hint="@string/enter_pass"
android:inputType="textPassword" />
<TextView
android:id="@+id/attempts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/password_text"
android:layout_alignLeft="@+id/password_text"
android:layout_marginLeft="-20dp"
android:layout_marginTop="53dp"
android:text="@string/attempts"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible" />
<Button
android:id="@+id/button_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/attempts"
android:layout_alignParentEnd="true"
android:layout_marginTop="62dp"
android:layout_marginEnd="58dp"
android:onClick="Login"
android:text="@string/login" />
<TextView
android:id="@+id/number_of_attempts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/edit_password"
android:layout_alignRight="@+id/user_text"
android:layout_alignParentEnd="true"
android:layout_marginTop="50dp"
android:layout_marginEnd="141dp"
android:layout_marginRight="-104dp"
android:visibility="invisible" />
<TextView
android:id="@+id/login_locked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/attempts"
android:layout_alignLeft="@+id/attempts"
android:layout_alignEnd="@+id/edit_password"
android:layout_alignRight="@+id/edit_password"
android:layout_alignParentBottom="true"
android:layout_marginBottom="57dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/attempts"
android:layout_marginTop="62dp"
android:layout_marginEnd="78dp"
android:layout_toStartOf="@+id/button_login"
android:onClick="Exit"
android:text="@string/exit" />
<TextView
android:id="@+id/textView3"
android:layout_width="122dp"
android:layout_height="33dp"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="60dp"
android:layout_marginBottom="21dp"
android:text="@string/student1" />
<TextView
android:id="@+id/textView4"
android:layout_width="122dp"
android:layout_height="33dp"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="200dp"
android:layout_marginBottom="21dp"
android:text="@string/student2" />
</RelativeLayout>
Листинг strings.xml
<resources>
<string name="app_name">Lab4</string>
<string name="txt_main">Main Activity</string>
<string name="txt_btn_change_act">Switch</string>
<string name="txt_plainText2">Enter text</string>
<string name="txt_plainText">Enter more text</string>
<string name="txt_act2">Second Activity</string>
<string name="exit">Exit</string>
<string name="student1">Nechaev Andrey</string>
<string name="student2">Derzhko Dmitriy</string>
</resources>
Рис 1. Получившееся приложение
Рис 2. Вход с неправильными данными
Рис 3. Вход с правильными данными, переход на MainActivity
Рис 4. Часть для смены пароля. Хранится в SharedPreferences
Вывод:
Изучили возможности и инструменты среды разработки Android Studio,
изучили принципы создания и работы с файлом в контексте ос Android, а
также с shared preference.