5. Implementations

Implementations

This is a simple APP

1. Activity (MainActivity.java):

Java

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.EditText;

import android.widget.Button;

import android.view.View;

import android.widget.Toast;

import androidx.recyclerview.widget.RecyclerView;

import androidx.recyclerview.widget.LinearLayoutManager;

import java.util.ArrayList;

import java.util.List;


public class MainActivity extends AppCompatActivity {

    private EditText editTextItem;

    private Button buttonAdd;

    private RecyclerView recyclerViewItems;

    private List<String> todoItems; // Simple list for now; would use a database later

    private TodoAdapter adapter;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        editTextItem = findViewById(R.id.editTextItem);

        buttonAdd = findViewById(R.id.buttonAdd);

        recyclerViewItems = findViewById(R.id.recyclerViewItems);

 

        todoItems = new ArrayList<>(); // Initialize the list

 

        // RecyclerView setup

        recyclerViewItems.setLayoutManager(new LinearLayoutManager(this)); // Vertical list

        adapter = new TodoAdapter(todoItems); // Create the adapter

        recyclerViewItems.setAdapter(adapter); // Set the adapter


        buttonAdd.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                String newItem = editTextItem.getText().toString().trim();

                if (!newItem.isEmpty()) {

                    todoItems.add(newItem); // Add to the list

                    adapter.notifyItemInserted(todoItems.size() - 1); // Notify adapter

                    editTextItem.setText(""); // Clear the EditText

                } else {

                    Toast.makeText(MainActivity.this, "Please enter an item", Toast.LENGTH_SHORT).show();

                }

            }

        });

    }

}