TEXT   60

to do list java

Guest on 22nd August 2024 03:20:30 AM

  1. // src/main/java/com/example/todolist/MainActivity.java
  2. package com.example.todolist;
  3.  
  4. import android.app.AlertDialog;
  5. import android.content.DialogInterface;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.AdapterView;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. import android.widget.ListView;
  13.  
  14. import androidx.appcompat.app.AppCompatActivity;
  15.  
  16. import java.util.ArrayList;
  17.  
  18. public class MainActivity extends AppCompatActivity {
  19.  
  20.     private ArrayList<String> tasks;
  21.     private ArrayAdapter<String> adapter;
  22.     private ListView taskListView;
  23.     private EditText taskInput;
  24.     private Button addButton, editButton, deleteButton;
  25.     private int selectedTaskPosition = -1;
  26.  
  27.     @Override
  28.     protected void onCreate(Bundle savedInstanceState) {
  29.         super.onCreate(savedInstanceState);
  30.         setContentView(R.layout.activity_main);
  31.  
  32.         taskInput = findViewById(R.id.taskInput);
  33.         addButton = findViewById(R.id.addButton);
  34.         editButton = findViewById(R.id.editButton);
  35.         deleteButton = findViewById(R.id.deleteButton);
  36.         taskListView = findViewById(R.id.taskList);
  37.  
  38.         tasks = new ArrayList<>();
  39.         adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_single_choice, tasks);
  40.         taskListView.setAdapter(adapter);
  41.  
  42.         taskListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  43.             @Override
  44.             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  45.                 selectedTaskPosition = position;
  46.                 taskInput.setText(tasks.get(position));
  47.             }
  48.         });
  49.  
  50.         addButton.setOnClickListener(new View.OnClickListener() {
  51.             @Override
  52.             public void onClick(View v) {
  53.                 String task = taskInput.getText().toString();
  54.                 if (!task.isEmpty()) {
  55.                     if (selectedTaskPosition >= 0) {
  56.                         tasks.set(selectedTaskPosition, task);
  57.                         selectedTaskPosition = -1;
  58.                     } else {
  59.                         tasks.add(task);
  60.                     }
  61.                     adapter.notifyDataSetChanged();
  62.                     taskInput.setText("");
  63.                 }
  64.             }
  65.         });
  66.  
  67.         editButton.setOnClickListener(new View.OnClickListener() {
  68.             @Override
  69.             public void onClick(View v) {
  70.                 if (selectedTaskPosition >= 0) {
  71.                     String newTask = taskInput.getText().toString();
  72.                     if (!newTask.isEmpty()) {
  73.                         tasks.set(selectedTaskPosition, newTask);
  74.                         adapter.notifyDataSetChanged();
  75.                         taskInput.setText("");
  76.                         selectedTaskPosition = -1;
  77.                     }
  78.                 }
  79.             }
  80.         });
  81.  
  82.         deleteButton.setOnClickListener(new View.OnClickListener() {
  83.             @Override
  84.             public void onClick(View v) {
  85.                 if (selectedTaskPosition >= 0) {
  86.                     new AlertDialog.Builder(MainActivity.this)
  87.                             .setTitle("Delete Task")
  88.                             .setMessage("Are you sure you want to delete this task?")
  89.                             .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
  90.                                 public void onClick(DialogInterface dialog, int which) {
  91.                                     tasks.remove(selectedTaskPosition);
  92.                                     adapter.notifyDataSetChanged();
  93.                                     taskInput.setText("");
  94.                                     selectedTaskPosition = -1;
  95.                                 }
  96.                             })
  97.                             .setNegativeButton(android.R.string.no, null)
  98.                             .show();
  99.                 }
  100.             }
  101.         });
  102.     }
  103. }

Raw Paste


Login or Register to edit or fork this paste. It's free.