intent
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- activity_main.xml -->
<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">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2 화면으로" />
</LinearLayout>
MainActivity.java
// MainActivity.java
public class MainActivity extends AppCompatActivity {
int a = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 10 더한 main2에서의 a 가져옴
a = this.getIntent().getIntExtra("a", 10);
setTitle("1화면"+a);
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 인텐트로 이동할 위치 설정
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
// putExtra: 앞의 "a"라는 변수에 뒤의 a값(MainActivity)을 넣는다.
// 넣기만 하면 안되고 받아와야 함.
// put의 반대인 get으로 데이터 읽어옴
intent.putExtra("a", a);
// 설정한 액티비티를 실행
startActivity(intent);
// 연재 액티비티 종료
finish();
}
});
}
}
activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- activity_main2.xml -->
<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">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1 화면으로" />
</LinearLayout>
MainActivity2.java
// MainActivity2.java
public class MainActivity2 extends AppCompatActivity {
int a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
// getIntExtra는 int 자료형으로 데이터 읽어온다는 뜻
// "a"는 MainActivity의 전역변수 a 가 아니라 putExtra로 넣은 a
// 100은 만약 intent에 a가 없을 경우 -1으로 읽으라는 뜻.
a = this.getIntent().getIntExtra("a", 100);
setTitle("2화면" + a);
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity2.this, MainActivity.class);
a += 10;
intent.putExtra("a", a);
startActivity(intent);
finish();
}
});
}
}