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( )メソッドなどを使用し、データを送る。この場合、タグをつけて渡すことで、受け取り側はそのタグにアクセスすることでデータを受け取ることができます。➀が渡す方で、➁が受け取る方の記述です。