PROGRAMMING FOR MOBILE PLATFORMS

6. Adapter (TodoAdapter.java): Java

2. Adapter (TodoAdapter.java):

Java

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

 

public class TodoAdapter extends RecyclerView.Adapter<TodoAdapter.TodoViewHolder> {

 

    private List<String> todoItems;

 

    public TodoAdapter(List<String> todoItems) {

        this.todoItems = todoItems;

    }

 

    @Override

    public TodoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); // Basic list item

        return new TodoViewHolder(view);

    }

 

    @Override

    public void onBindViewHolder(TodoViewHolder holder, int position) {

        String item = todoItems.get(position);

        holder.textViewItem.setText(item);

    }

 

    @Override

    public int getItemCount() {

        return todoItems.size();

    }

 

    public class TodoViewHolder extends RecyclerView.ViewHolder {

        public TextView textViewItem;

 

        public TodoViewHolder(View itemView) {

            super(itemView);

            textViewItem = itemView.findViewById(android.R.id.text1); // Standard text view ID

        }

    }

}

3. Layout (activity_main.xml):

XML

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:padding="16dp"

    tools:context=".MainActivity">

 

    <EditText

        android:id="@+id/editTextItem"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:hint="Enter an item" />

 

    <Button

        android:id="@+id/buttonAdd"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="Add" />

 

    <androidx.recyclerview.widget.RecyclerView

        android:id="@+id/recyclerViewItems"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_marginTop="16dp" />

 

</LinearLayout>