일단 다음과 같이 간단한 구성으로 진행해보고자 합니다.
우선 어플을 실행시키면 이전에 만들어 두었던 button1 을 포함한 간단한 화면을 출력하게끔 하고 button1을 눌렀을 때 이전과 같이 text 문구가 뜨는 것이 아닌 사용자가 만들어둔 2nd 화면을 출력하게 만듭니다.
이 2nd화면에서도 버튼2를 만들어 놓고 사용자가 버튼2를 누르게 되면 원래의 처음 화면으로 돌아가게끔 만들어 보도록 하겠습니다.
첫번째 실행화면을 만드는 것과 버튼을 만드는 것은 이전 과정을 통해 만들어 두었을 것이므로 바로 2nd 화면용으로 사용할 화면을 만드는 것 부터 시작해 보도록 하겠습니다.
2nd화면을 만드는 것은 res>layout 에서 오른쪽으로 클릭한 뒤, New>Layout resource file을 선택한 뒤 원하는 file name을 적어두면 간단하게 생성됩니다.
이후, 다음과 같이 아무것도 없는 빈화면에 오로지 2nd page! 란 글자만 출력하고 돌아갈 RETURN 버튼만 만들었습니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2nd Page!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonR"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="31dp"
android:layout_marginEnd="32dp"
android:text="return"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</android.support.constraint.ConstraintLayout>
여기까지 완료하였으면 이제 서로 전환할 두가지 화면을 만들게 된 것입니다.
이제 버튼에 대한 동작을 수행할 부분을 적을 수 있는 java 폴더를 건드려 보도록 하겠습니다.
우선은 기존에 만들어져 있는 MainActivity.java 파일을 다음과 같이 수정하도록 하였습니다.
public class MainActivity extends AppCompatActivity {
Button button_t1; //첫번째 화면의 button을 Button 변수로 설정합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button_act b1 = new Button_act(); // Button_act() 함수 처리 결과를 b1에 넣어줍니다.
button_t1 = (Button) findViewById(R.id.button1) ; //여기서 findViewById는 버튼 종류의 id로 View를 찾는 역할을 합니다.
button_t1.setOnClickListener(b1); //button1이 클릭 되었을 때 onClik 안의 동작이 시행되도록 합니다.
}
class Button_act implements View.OnClickListener{ //Button_act는 View class 안에 OnClickListener 인터페이스를 구현한 클래스로 만들어줍니다.
public void onClick(View v){
Intent intent1 = new Intent(getApplicationContext(), ShowCalender.class); //Intent 클래스를 이용해서 이동할 activity class 명을 적어줍니다. (저는 여기서 ShowCalender라는 2nd 실행화면 명을 만들었기 때문에 ShowCalender.class 를 적어주었습니다.)
startActivity(intent1); //안드로이드 운영체제에 intent1의 activity 전환, 즉, 2nd 화면으로 전환하도록 실행합니다.
}
}
}
그러면 이제 2nd 실행화면(ShowCalender)에서는 어떤 동작을 할 지에 대해서 작성해 주면 되는데 우선 app>java 에서 New>Java Class 를 통해 이전에 만들고자 했던 2nd 실행화면 class 명을 적어줍니다.
그럼 해당파일.java 가 생성되고 다음과 같이 이전과 같이 버튼이 클릭되었을 때 동작하게끔 onClick 메소드를 이용하고 대신 그 안에 finish(); 를 넣어주어 현재 실행중인 Activity를 종료하게 만들어주면 이전 Activity로 돌아가게 됩니다.
이 모든 과정을 마친 후에 app>manifests>AndroidManifest.xml 로 들어가서 다음과 같이 <activity android:name=".ShowCalender">
</activity>
라고 새로 만든 2nd 화면의 이름을 써주면 해당 activity를 안드로이드 운영체제가 인식하게 됩니다.
이 과정을 마치면 정상적으로 버튼을 누를 때마다 화면이 전환되는 어플의 모습을 확인할 수 있을 것입니다.
댓글 없음:
댓글 쓰기