intent

Haechan Kim·2021년 10월 5일
0

안드로이드

목록 보기
5/6

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();
            }
        });
    }
}

0개의 댓글

관련 채용 정보