Comment créer une application de notes simple sur Android avec JAVA?
❣Astuces
Pour copier le code, appuyer quelques secondes sur le code
É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
1 commentaire