I'm building a to do app and I'm trying to add the edit function.  When an item is clicked, it takes the user to EditItemActivity.java where the user can edit that particular to do.  For example, it could be edited from "Do Homework" to "Go to the gym".
So far I've been able to get the item that was clicked and have its text display in the EditText field that will be used for the editing. However, I couldn't figure out how to save the edit when the button is clicked and go back to the main screen.
So in my adapter, I'm calling the intent with extra:
    public class ToDoAdapter extends RecyclerView.Adapter<ToDoAdapter.ViewHolder> {
    private List<ToDoData> toDoList;
    private Context context;
    public ToDoAdapter(List<ToDoData> todoList, Context context) {
        this.toDoList = todoList;
        this.context = context;
    }
    public ToDoAdapter(Context context){}
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
        TextView todoView;
        public ViewHolder(View itemView) {
            super(itemView);
            itemView.setOnClickListener(this);
            todoView = itemView.findViewById(R.id.to_do_display);
        }
        @Override
        public void onClick(View view) {
            Toast.makeText(context, "position = " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(context, EditItemActivity.class);
            intent.putExtra("data", todoView.getText());
            intent.putExtra("position", getAdapterPosition());
            context.startActivity(intent);
        }
    }
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.to_do_list_item, parent, false);
        return new ViewHolder(view);
    }
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        ToDoData todoPosition = toDoList.get(position);
        holder.todoView.setText(todoPosition.getToDo());
    }
    @Override
    public int getItemCount() {
        return (toDoList == null) ? 0 : toDoList.size();
    }
}
And in my EditItemActivity.java, I'm retrieving the text and placing it in my EditText field:
public class EditItemActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_item);
        final ToDoData toDoData = new ToDoData(this);
        final ToDoAdapter toDoAdapter = new ToDoAdapter(this);
        final EditText editToDo = (EditText)findViewById(R.id.edit_todo_item);
        Button button = (Button)findViewById(R.id.save_changes);
        final String text = getIntent().getExtras().getString("data");
        editToDo.setText(text);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(editToDo.getText().toString() != text){
                    toDoData.setToDo(editToDo.getText().toString());
                    toDoAdapter.notifyDataSetChanged();
                    finish();
                }
            }
        });
    }
}
But I don't know how to go further than this unfortunately.
 
    