ASデータ受け渡し~Activity間でデータを受け渡す~

今回は問題にはしておらず。コードだけ載せておきます。

 

MainActivity.java

package com.example.calculation;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

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

Button startBtn = findViewById(R.id.startBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,FirstActivity.class);
startActivity(intent);
}
});

}
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center_horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MainActivity"/>

<Button
android:id="@+id/startBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="始める"
android:layout_marginTop="160sp"/>

</LinearLayout>

FirstActivity.java

package com.example.calculation;

import static java.lang.Integer.parseInt;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

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

Intent intent = getIntent();
int sum = intent.getIntExtra("SUM",0); ・・・➁

TextView secondSum = findViewById(R.id.secondSum);
secondSum.setText(String.valueOf(sum));

EditText secondValue = findViewById(R.id.secondValue);

ImageButton plusSecondBtn = findViewById(R.id.plusSecondBtn);
plusSecondBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int sum2 = sum + parseInt(secondValue.getText().toString());
Intent intent = new Intent(SecondActivity.this,ThirdActivity.class);
intent.putExtra("SUM2",sum2); ・・・➀
startActivity(intent);
}
});

}
}

activity_first.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FirstActivity"
android:gravity="center_horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FirstActivity"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="値:"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<EditText
android:id="@+id/firstValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<ImageButton
android:id="@+id/plusFirstBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_sharp_add_24"
android:layout_marginTop="200sp"/>

</LinearLayout>

SecondActivity.java

package com.example.calculation;

import static java.lang.Integer.parseInt;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

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

Intent intent = getIntent();
int sum = intent.getIntExtra("SUM",0); ・・・➁

TextView secondSum = findViewById(R.id.secondSum);
secondSum.setText(String.valueOf(sum));

EditText secondValue = findViewById(R.id.secondValue);

ImageButton plusSecondBtn = findViewById(R.id.plusSecondBtn);
plusSecondBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int sum2 = sum + parseInt(secondValue.getText().toString());
Intent intent = new Intent(SecondActivity.this,ThirdActivity.class);
intent.putExtra("SUM2",sum2); ・・・➀
startActivity(intent);
}
});

}
}

activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity"
android:gravity="center_horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SecondActivity"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="値:"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<EditText
android:id="@+id/secondValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:layout_marginTop="160sp"/>
<ImageButton
android:id="@+id/plusSecondBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_sharp_add_24"
android:layout_marginTop="200sp"/>
<TextView
android:id="@+id/secondSum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200sp"/>
</LinearLayout>

ThirdActivity.java

package com.example.calculation;

import static java.lang.Integer.parseInt;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class ThirdActivity extends AppCompatActivity {

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

Intent intent = getIntent();
int sum2 = intent.getIntExtra("SUM2",0);

TextView thirdSum = findViewById(R.id.thirdSum);
thirdSum.setText(String.valueOf(sum2));

EditText thirdValue = findViewById(R.id.thirdValue);

ImageButton plusThirdBtn = findViewById(R.id.plusThirdBtn);
plusThirdBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int sum3 = sum2 + parseInt(thirdValue.getText().toString());
Intent intent = new Intent(ThirdActivity.this,LastActivity.class);
intent.putExtra("SUM3",sum3);・・・➁
startActivity(intent);
}
});
}
}

activity_third.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ThirdActivity"
android:gravity="center_horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ThirdActivity"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="値:"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<EditText
android:id="@+id/thirdValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<ImageButton
android:id="@+id/plusThirdBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_baseline_calculate_24"
android:layout_marginTop="200sp"/>
<TextView
android:id="@+id/thirdSum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="200sp"/>

</LinearLayout>

LastActivity.java

package com.example.calculation;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class LastActivity extends AppCompatActivity {

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

Intent intent = getIntent();
int sum3 = intent.getIntExtra("SUM3",0);  ・・・➁

TextView lastSum = findViewById(R.id.lastSum);
lastSum.setText(String.valueOf(sum3));
}
}

activity_last.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LastActivity"
android:gravity="center_horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="合計:"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

<TextView
android:id="@+id/lastSum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:layout_marginTop="160sp"/>

</LinearLayout>

Intentクラスをインスタンス化し、そのオブジェクトのputInt( )メソッドなどを使用し、データを送る。この場合、タグをつけて渡すことで、受け取り側はそのタグにアクセスすることでデータを受け取ることができます。➀が渡す方で、➁が受け取る方の記述です。