본문 바로가기
Android

[Android] 안드로이드 : 화면 구성과 화면 간 전환

by 꿈나무 김땡땡 2019. 12. 5.

1. 애플리케이션 구성요소

  (1) 액티비티 : 화면

  (2) 서비스

  (3) 브로드캐스트 수신자

  (4) 내용 제공자

 

2. 액티비티 새로 만들기

  - 목표 : activity_main.xml에서 버튼을 누르면 activity_menu.xml로 이동

 

  (1) app > 오른쪽 버튼 클릭 > New > Activity 

 

 (2) app > manifest > AndroidManifest.xml에 MenuActivity가 추가 되어 있음

 

 (3) activity_main.xml에 버튼 추가

 

 (4) MainActivity.java에 버튼 추가 > onClick 리스너 추가

public class MainActivity extends AppCompatActivity {

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

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 인텐트 객체 만들기
                Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
                // 시스템에 인텐트 전달 (코드 : 어떤 화면에서 넘어온 건지 코드 보고 확인 가능)
                startActivityForResult(intent, 101);
            }
        });

    }
}

 

 (5) MenuActivity.java에 버튼 추가 > onClick 리스너 추가

public class MenuActivity extends AppCompatActivity {

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

        Button button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("name", "mike");
                // 결과 값 MainActivity로 전달하기
                setResult(Activity.RESULT_OK, intent);
                // 메뉴화면 없앤다 (메인화면이 나온다)
                finish();
            }
        });
    }
}

 

 (6) MainActivity.java에 onActivityResult 추가

// generate > override methods > onActivityResult : MenuActivity.java에서 보낸 intent를 전달 받는 메소드
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 101) {
            String name = data.getStringExtra("name");
            Toast.makeText(getApplicationContext(), "메뉴화면으로부터 응답 : " + name, Toast.LENGTH_LONG).show();
        }
    }

 

3. 액티비티 구성 과정 정리

댓글