Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider d417a9d0 rédigé par David CHOCHO's avatar David CHOCHO
Parcourir les fichiers

quasi fin exo Notes Dev_android

parent 51bb1fbb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
......
package dev.mobile.td3notes
import android.app.Instrumentation.ActivityResult
import android.app.Notification.Action
import android.content.Intent
import android.database.Cursor
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.ContactsContract
import android.util.Log
import android.widget.*
import androidx.activity.result.contract.ActivityResultContracts
class AddActivity : AppCompatActivity() {
......@@ -13,7 +19,22 @@ class AddActivity : AppCompatActivity() {
private lateinit var commentaire: EditText
private lateinit var okButton: Button
private lateinit var cancelButton: Button
private lateinit var pickButton: ImageButton
val contratContact = registerForActivityResult(ActivityResultContracts.PickContact()){
result ->
if (result == null) {
Toast.makeText(this,"PAS D'AJOUT", Toast.LENGTH_SHORT).show()
}else{
val cursor: Cursor? = contentResolver.query(result, null, null, null, null)
if (cursor != null && cursor.moveToFirst()) {
val nom : String =
cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME))
// nom est le nom du contact sélectionné
cursor.close()
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_detail)
......@@ -23,6 +44,33 @@ class AddActivity : AppCompatActivity() {
commentaire = findViewById(R.id.commentairei)
okButton = findViewById(R.id.ok)
cancelButton = findViewById(R.id.cancel)
pickButton = findViewById(R.id.pick)
var toast : Toast
okButton.setOnClickListener {
if (nom.text.isNullOrEmpty() || commentaire.text.isNullOrEmpty()){
toast = Toast.makeText(this,"tous les champs de textes doivent etre remplis ", Toast.LENGTH_SHORT)
toast.show()
}else if (note.progress == 0){
toast = Toast.makeText(this,"mettre une note supérieur à 0", Toast.LENGTH_SHORT)
toast.show()
}else{
val noteRetour = Note(nom.text.toString(),note.progress.toDouble(),commentaire.toString())
val intentRetour = Intent(this,MainActivity::class.java)
intentRetour.putExtra("note",noteRetour)
setResult(RESULT_OK,intentRetour)
finish()
}
}
cancelButton.setOnClickListener {
setResult(RESULT_CANCELED)
finish()
}
pickButton.setOnClickListener {
contratContact.launch(null)
}
}
}
\ No newline at end of file
......@@ -27,7 +27,10 @@ class MainActivity : AppCompatActivity() {
val contratNewNote = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){
result : ActivityResult ->
if (result.resultCode == Activity.RESULT_OK){
//result.data
notes.ajouter(result.data!!.extras!!.getParcelable("note",Note::class.java)!!)
Toast.makeText(this,"Note ajoutée",Toast.LENGTH_LONG).show()
}else if (result.resultCode == Activity.RESULT_CANCELED){
Toast.makeText(this,"Aucune note ajoutée",Toast.LENGTH_SHORT).show()
}
}
......@@ -50,19 +53,22 @@ class MainActivity : AppCompatActivity() {
afficheNote(notes.courante())
}
recule.setOnClickListener { afficheNote(notes.precedente()) }
avance.setOnClickListener { afficheNote(notes.suivante()) }
ajoute.setOnClickListener {
val intentAdd = Intent(this, AddActivity::class.java)
contratNewNote.launch(intentAdd)
}
detail.setOnClickListener {
val intentDetail = Intent(this,DetailActivity::class.java)
intentDetail.putExtra("objet_note",notes.courante())
startActivity(intentDetail)
}
}
fun afficheNote(note: Note?) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter