lab4
This commit is contained in:
@@ -1,53 +1,55 @@
|
||||
package com.example.myapplication
|
||||
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.Network
|
||||
import android.net.NetworkCapabilities
|
||||
import android.os.Bundle
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.core.content.getSystemService
|
||||
import java.io.File
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
private lateinit var tvStatus: TextView
|
||||
private lateinit var connectivityManager: ConnectivityManager
|
||||
private lateinit var etInput: EditText
|
||||
private lateinit var btnSave: Button
|
||||
private lateinit var btnLoad: Button
|
||||
private lateinit var tvResult: TextView
|
||||
|
||||
private val fileName = "myfile.txt"
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
tvStatus = findViewById(R.id.tvNetworkStatus)
|
||||
connectivityManager = getSystemService()!!
|
||||
etInput = findViewById(R.id.etInput)
|
||||
btnSave = findViewById(R.id.btnSave)
|
||||
btnLoad = findViewById(R.id.btnLoad)
|
||||
tvResult = findViewById(R.id.tvResult)
|
||||
|
||||
// Проверяем сеть при старте
|
||||
updateNetworkStatus()
|
||||
|
||||
// Подписываемся на изменения сети
|
||||
connectivityManager.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() {
|
||||
override fun onAvailable(network: Network) {
|
||||
runOnUiThread {
|
||||
tvStatus.text = "Сеть доступна"
|
||||
Toast.makeText(this@MainActivity, "Подключение появилось", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onLost(network: Network) {
|
||||
runOnUiThread {
|
||||
tvStatus.text = "Сеть недоступна"
|
||||
Toast.makeText(this@MainActivity, "Подключение потеряно", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
})
|
||||
btnSave.setOnClickListener { saveToFile() }
|
||||
btnLoad.setOnClickListener { loadFromFile() }
|
||||
}
|
||||
|
||||
// Проверка текущего состояния сети
|
||||
private fun updateNetworkStatus() {
|
||||
val network = connectivityManager.activeNetwork
|
||||
val caps = connectivityManager.getNetworkCapabilities(network)
|
||||
val connected = caps?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) == true
|
||||
private fun saveToFile() {
|
||||
val text = etInput.text.toString()
|
||||
if (text.isEmpty()) {
|
||||
Toast.makeText(this, "Введите текст", Toast.LENGTH_SHORT).show()
|
||||
return
|
||||
}
|
||||
|
||||
tvStatus.text = if (connected) "Сеть доступна" else "Сеть недоступна"
|
||||
val file = File(filesDir, fileName)
|
||||
file.writeText(text)
|
||||
|
||||
Toast.makeText(this, "Файл сохранён", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
private fun loadFromFile() {
|
||||
val file = File(filesDir, fileName)
|
||||
if (file.exists()) {
|
||||
val content = file.readText()
|
||||
tvResult.text = "Содержимое файла: $content"
|
||||
} else {
|
||||
tvResult.text = "Файл не найден"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user