How to get the data from an activity to another and use them?

Stefan Chiriacopol :

I am working at a calendar app and I am stuck. I have an activity where I get some details and then I want the other activity to show the details in a text view. Ps: I was thinking of an "if" command, where if the details (day, month, year) match the selected day or current day if nothing no date is pressed it should show the events with the same time details. Please help. Thanks!

DETAILS ACTIVITY:

package com.exemple.android.calendar;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import org.jetbrains.annotations.NotNull;

public class NewEventActivity extends AppCompatActivity {

    //step 1.A:create objects

    public EditText DayEditText;
    public EditText MonthEditText;
    public EditText YearEditText;
    public EditText StartingHourEditText;
    public EditText StartingMinuteEditText;
    public EditText EndingHourEditText;
    public EditText EndingMinuteEditText;
    public EditText Title;
    public RadioGroup answer1;
    public Button NewEventButton;

    int day, month, year, s_hour, s_min, e_hour, e_min;
    String title;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_event_page);


        //Step 1.B: assign objects

        DayEditText = findViewById(R.id.DayEditText);
        MonthEditText = findViewById(R.id.MonthEditText);
        YearEditText = findViewById(R.id.YearEditText);
        StartingHourEditText = findViewById(R.id.StartingHourEditText);
        StartingMinuteEditText = findViewById(R.id.StartingMinuteEditText);
        EndingHourEditText = findViewById(R.id.EndingHourEditText);
        EndingMinuteEditText = findViewById(R.id.EndingMinuteEditText);
        Title = findViewById(R.id.TitleEditText);
        answer1 = findViewById(R.id.Answer1);
        NewEventButton = findViewById(R.id.CreateEventButton);

        DayEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "31")});
        MonthEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "12")});
        YearEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "2030")});
        StartingHourEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "23")});
        StartingMinuteEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "59")});
        EndingHourEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "23")});
        EndingMinuteEditText.setFilters(new InputFilter[]{new MinMaxFilter("0", "59")});
        //Step 2: get data into variables

        //Step 2.B: get data and assign
        //PROBLEM: If we just extract, the code won't be run because there's nothing to extract yet. We need a conditional.
        //SOLUTION: Create a condition for pressing the button, and then extract the variables when the button is pressed.

        TextWatcher dayTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                day = Integer.parseInt(DayEditText.getText().toString());
            }
        };
        TextWatcher monthTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                month = Integer.parseInt(MonthEditText.getText().toString());
            }
        };
        TextWatcher yearTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                year = Integer.parseInt(YearEditText.getText().toString());
            }
        };
        TextWatcher titleTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                title = Title.getText().toString();
            }
        };
        TextWatcher s_hourTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                s_hour = Integer.parseInt(StartingHourEditText.getText().toString());
            }
        };
        TextWatcher s_minTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                s_min = Integer.parseInt(StartingMinuteEditText.getText().toString());
            }
        };
        TextWatcher e_minTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                e_min = Integer.parseInt(EndingMinuteEditText.getText().toString());
            }
        };
        TextWatcher e_hourTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                e_hour = Integer.parseInt(EndingHourEditText.getText().toString());
            }
        };

        DayEditText.addTextChangedListener(dayTextWatcher);
        MonthEditText.addTextChangedListener(monthTextWatcher);
        YearEditText.addTextChangedListener(yearTextWatcher);
        Title.addTextChangedListener(titleTextWatcher);
        StartingMinuteEditText.addTextChangedListener(s_minTextWatcher);
        StartingHourEditText.addTextChangedListener(s_hourTextWatcher);
        EndingMinuteEditText.addTextChangedListener(e_minTextWatcher);
        EndingHourEditText.addTextChangedListener(e_hourTextWatcher);

        NewEventButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                answer1.clearCheck();
                Intent agendaPageGoing = new Intent(getApplicationContext(), AgendaActivity.class);
                startActivity(agendaPageGoing);

            }
        });

    }


}

AGENDA ACTIVITY:

package com.exemple.android.calendar;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.TextView;

import java.sql.Date;
import java.util.Calendar;

public class AgendaActivity extends AppCompatActivity {

    int day2,year2,month2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.agenda_page);

        final Button showDetails = findViewById(R.id.SeeEventsButton);
        CalendarView calendar = findViewById(R.id.calendarView);
        TextView events = findViewById(R.id.detailsShowTextView);

        Calendar cal = Calendar.getInstance();
        day2 = cal.get(Calendar.DAY_OF_MONTH);
        year2=cal.get(Calendar.YEAR);
        month2=cal.get(Calendar.MONTH);

        calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
           @Override
           public void onSelectedDayChange(@NonNull CalendarView calendarView, int year, int month, int day) {
               year2 = year;
               month2 = month;
               day2=day;
           }
       });


        showDetails.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            //This is the button I was talking about
            }
        });
    }
}
TomMat :

You can pass data between activities using intent

Put data while opening detail view:

Intent intent = new Intent(AgendaActivity.this, NewEventActivity.class);
        intent.putExtra("tag", "put data here");
        startActivity(intent);

Retrieve data in detail view:

Intent intent = getIntent();
        String data = intent.getStringExtra("tag");

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=356048&siteId=1