Comment créer une application de notes simple sur Android avec JAVA?

❣Astuces
Pour copier le code, appuyer quelques secondes sur le code

L'application Notes est utilisée pour créer de courtes notes de texte, les mettre à jour lorsque vous en avez besoin et les supprimer lorsque vous avez terminé. Il peut être utilisé pour diverses fonctions car vous pouvez ajouter votre liste de tâches dans cette application, quelques notes importantes pour référence future, etc. L'application est très utile dans certains cas, comme lorsque vous souhaitez un accès rapide aux notes. De même, créons ici une application Android pour apprendre à créer une application NotesApp simple. Donc, dans cet article, créons une application Notes dans laquelle l'utilisateur peut ajouter des données, supprimer des données ainsi que modifier des données . Un exemple de GIF est donné ci-dessous pour avoir une idée de ce que nous allons faire dans cet article. Notez que nous allons implémenter ce projet en utilisant le langage Java .

Étape 1 : créer un nouveau projet
Créer un nouveau projet et sélectionnez Java comme langage de programmation
Étape 2 : Travailler avec le fichier activity_main.xml
Dans le fichier activity_main.xml ajoutez un ListView et un TextView . ListView est ajouté pour afficher la liste des notes enregistrées automatiquement et TextView est utilisé pour afficher simplement le texte GFG. Vous trouverez ci-dessous le code complet du fichier 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">

	<!--Adding a ListView -->
	<ListView
		android:id="@+id/listView"
		android:layout_width="409dp"
		android:layout_height="601dp"
		android:layout_marginTop="80dp"
		app:layout_constraintBottom_toBottomOf="parent"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />

	<!--Adding a TextView -->
	<TextView
		android:id="@+id/textView2"
		android:layout_width="0dp"
		android:layout_height="0dp"
		android:gravity="center_horizontal"
		android:text="GFG"
		android:textColor="@android:color/holo_green_dark"
		android:textSize="30sp"
		app:layout_constraintBottom_toTopOf="@+id/listView"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Interface utilisateur de sortie :


Étape 3 : Créer une nouvelle mise en page pour afficher le menu
Accédez à app> res> cliquez avec le bouton droit de la souris> Nouveau> Répertoire et nommez-le menu . Cliquez ensuite sur app> res> menu> Nouveau> Fichier de ressources de menu et nommez le fichier add_note_menu . Vous trouverez ci-dessous le code du fichier add_note_menu.xml .


<?xml version="1.0" encoding="utf-8"?>
<!--Adding Menu to show the function to
	User to delete and edit the data-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
	
	<item android:id="@+id/add_note" android:title="Add note"></item>
	
</menu>

Étape 4 : Créer une nouvelle activité vide
Accédez à app> java> cliquez avec le bouton droit de la souris> Nouveau> Activité> Activité vide et nommez-la NoteEditorActivity . Dans cette activité, nous allons taper nos notes. Ainsi, dans le fichier activity_note_editor.xml, ajoutez un EditText pour ajouter des données à ListView. Vous trouverez ci-dessous le code du fichier activity_note_editor.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=".NoteEditorActivity">

	<!--Adding Edit Text To add data to List View-->
	<EditText
		android:id="@+id/editText"
		android:layout_width="0dp"
		android:layout_height="0dp"
		android:ems="10"
		android:gravity="top|left"
		android:inputType="textMultiLine"
		app:layout_constraintBottom_toBottomOf="parent"
		app:layout_constraintEnd_toEndOf="parent"
		app:layout_constraintStart_toStartOf="parent"
		app:layout_constraintTop_toTopOf="parent" />
	
</androidx.constraintlayout.widget.ConstraintLayout>

Maintenant, dans le fichier NoteEditorActivity.java , écrivez le code pour stocker les données. Ajoutez SharedPreference dans l'application pour stocker les données dans la mémoire du téléphone. Définition des valeurs dans SharedPreference : Éditeur SharedPreferences.

Editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); editor.putString("nom", "Elena"); editor.putInt("idName", 12); éditeur.apply(); Récupérez les données de SharedPreference : Préférences partagées prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); // Aucun nom défini est la valeur par défaut. Nom de la chaîne = prefs.getString("nom", "Aucun nom défini"); // 0 est la valeur par défaut. int idName = prefs.getInt("idName", 0); 

 Vous trouverez ci-dessous le code complet du fichier NoteEditorActivity.java . Des commentaires sont ajoutés à l'intérieur du code pour comprendre le code plus en détail.


import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import java.util.HashSet;

public class NoteEditorActivity extends AppCompatActivity {
	int noteId;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_note_editor);

		EditText editText = findViewById(R.id.editText);

		// Fetch data that is passed from MainActivity
		Intent intent = getIntent();

		// Accessing the data using key and value
		noteId = intent.getIntExtra("noteId", -1);
		if (noteId != -1) {
			editText.setText(MainActivity.notes.get(noteId));
		} else {

			MainActivity.notes.add("");
			noteId = MainActivity.notes.size() - 1;
			MainActivity.arrayAdapter.notifyDataSetChanged();

		}

		editText.addTextChangedListener(new TextWatcher() {
			@Override
			public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
				// add your code here
			}

			@Override
			public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
				MainActivity.notes.set(noteId, String.valueOf(charSequence));
				MainActivity.arrayAdapter.notifyDataSetChanged();
				// Creating Object of SharedPreferences to store data in the phone
				SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("com.example.notes", Context.MODE_PRIVATE);
				HashSet<String> set = new HashSet(MainActivity.notes);
				sharedPreferences.edit().putStringSet("notes", set).apply();
			}

			@Override
			public void afterTextChanged(Editable editable) {
				// add your code here
			}
		});
	}
}

Étape 5 : Travailler avec le fichier MainAtivity.javaMaintenant, configurez toutes les choses dans le fichier MainActivity.java . En appelant le code NoteEditorActivity.java , joignez tout le code XML à Java et exécutez l'application. Vous trouverez ci-dessous le code complet du fichier MainActivity.java . Des commentaires sont ajoutés à l'intérieur du code pour comprendre le code plus en détail.


import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.HashSet;

public class MainActivity extends AppCompatActivity {

	static ArrayList<String> notes = new ArrayList<>();
	static ArrayAdapter arrayAdapter;

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		MenuInflater menuInflater = getMenuInflater();
		menuInflater.inflate(R.menu.add_note_menu, menu);

		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(@NonNull MenuItem item) {
		super.onOptionsItemSelected(item);

		if (item.getItemId() == R.id.add_note) {

			// Going from MainActivity to NotesEditorActivity
			Intent intent = new Intent(getApplicationContext(), NoteEditorActivity.class);
			startActivity(intent);
			return true;
		}

		return false;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		ListView listView = findViewById(R.id.listView);
		SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("com.example.notes", Context.MODE_PRIVATE);
		HashSet<String> set = (HashSet<String>) sharedPreferences.getStringSet("notes", null);

		if (set == null) {

			notes.add("Example note");
		} else {
			notes = new ArrayList(set);
		}

		// Using custom listView Provided by Android Studio
		arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, notes);

		listView.setAdapter(arrayAdapter);

		listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

				// Going from MainActivity to NotesEditorActivity
				Intent intent = new Intent(getApplicationContext(), NoteEditorActivity.class);
				intent.putExtra("noteId", i);
				startActivity(intent);

			}
		});

		listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
			@Override
			public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {

				final int itemToDelete = i;
				// To delete the data from the App
				new AlertDialog.Builder(MainActivity.this)
						.setIcon(android.R.drawable.ic_dialog_alert)
						.setTitle("Are you sure?")
						.setMessage("Do you want to delete this note?")
						.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
							@Override
							public void onClick(DialogInterface dialogInterface, int i) {
								notes.remove(itemToDelete);
								arrayAdapter.notifyDataSetChanged();
								SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("com.example.notes", Context.MODE_PRIVATE);
								HashSet<String> set = new HashSet(MainActivity.notes);
								sharedPreferences.edit().putStringSet("notes", set).apply();
							}
						}).setNegativeButton("No", null).show();
				return true;
			}
		});
	}
}

Démonstration


  • A+
  • A-