안녕하세요 ! 초보개발자 입니다.
이 블로그는 개인 공부 정리용 블로그 입니다.
혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.
그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.
그럼 시작하도록 하겠습니다.
Intent(인텐트)
새로운 액티비티를 만들고 새로 만든 액티비티로 이동하기 위해서는 Intent를 사용하여야 합니다.
예제를 통해서 어떻게 다른 액티비티로 이동하는지 알아 보겠습니다.
첫번째 액티비티 화면은 다음과 같이 만듭니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/startActivity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Activity2로 이동" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/startActivity" android:layout_centerHorizontal="true" android:layout_marginBottom="67dp" android:text="버튼을 누르면 Activity2로 이동 합니다." android:textSize="20dp" /> <TextView android:textSize="20dp" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginBottom="53dp" android:text="Main 화면입니다." /> </RelativeLayout> | cs |
소스는 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package com.example.administrator.intenttest; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button activityStart; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activityStart= (Button)findViewById(R.id.startActivity); activityStart.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent = new Intent(this,Activity2.class); startActivity(intent); } } | cs |
메인화면에서 버튼을 클릭할때 다음 액티비티로 이동하는 코드입니다. 여기서 Intent를 사용합니다.
Intent intent = new Intent(this,Activity2.class);
인텐트 객체를 생성하면서 생성자에 두개의 파라메터가 있습니다. 첫번째는 this 로 현재 화면을 뜻합니다. 두번째 파라메터는 Activity2.class로 버튼 클릭시 이동할 액티비티를 뜻 합니다. 인텐트를 만들었으니 실행을 해야하는데 이는 startActivity()메소드가 담당 합니다. 우리가 생성한 intent를 인자값으로 넣어주면 끝입니다.
두번째 화면은 다음과 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/finish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Activity2 종료" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/finish" android:layout_centerHorizontal="true" android:layout_marginBottom="67dp" android:text="버튼을 누르면 Activity2가 종료 됩니다.." android:textSize="20dp" /> <TextView android:id="@+id/textView2" android:textSize="20dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="59dp" android:text="Activity2 액티비티 입니다." /> </RelativeLayout> | cs |
두번째 소스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.example.administrator.intenttest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Activity2 extends AppCompatActivity implements View.OnClickListener { Button finish ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_2); finish = (Button)findViewById(R.id.finish); finish.setOnClickListener(this); } @Override public void onClick(View v) { finish(); } } | cs |
액티비티를 종료하는 함수는 위의 소스에서 보는것과 같이 finish() 함수를 이용하면 됩니다.
이상으로 Intent를 이용하여 액티비티간의 이동하는 방법을 알아 보았습니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 인텐트(Intent) 이용하기 (3) - 암시적 인텐트(Implicit Intent) (2) | 2017.05.07 |
---|---|
[안드로이드] 인텐트(Intent) 이용하기(2) - 명시적 인텐트(Explicit Intent) (1) | 2017.05.06 |
[안드로이드] 레이아웃 인플레이션(Layout Inflation) (2) | 2017.05.04 |
[안드로이드] 카메라로 사진찍어서 이미지뷰에 보여주기 (4) | 2017.05.02 |
[안드로이드] SharedPreferences를 이용한 자동로그인 기능 구현 (106) | 2017.05.02 |