빠르게 배우는 안드로이드 — Intent -2 엑티비티 호출

에 이어서 진행합니다.

이번에는 새 엑티비티를 만들고 엑티비티간의 화면 전환을 하는 명시적 인텐트(Explicit Intent)에 대한 실습을 진행하겠습니다.

해당 패키지 -> 우클릭 -> new -> Activity-> Empty Activity를 클릭합니다.

다음 화면이 나올것입니다. 기본설정을 바꾸지않고 Finish를 클릭해서 진행하도록하겠습니다.

패키지에 Main2Activity와 layout에 activity_main2.xml이 생성된것을 볼수있습니다.

activity_main2.xml에 들어가서 2번째 화면인것을 표시하도록하겠습니다.

텍스트뷰를 배치하고 2번째 엑티비티라고 입력해놓았습니다.

activity_main.xml에가서 버튼을 배치하고 이 버튼을 클릭하면 두번째 화면으로 전환되도록하겠습니다.

버튼의 text를 activity2로 id를 activity2_btn으로 지정했습니다.

이제 코드를 수정하여 activity를 전환해봅시다.

Intent intent = new Intent(Context context,실행할 새 엑티비티.class)
startActivity(intent);

다음의 코드를 추가하면 새 엑티비티가 실행됩니다.

public class MainActivity extends AppCompatActivity {
TextView num_textView;
TextView url_textView;
Button activity2_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num_textView = (TextView)findViewById(R.id.num_textView);
url_textView = (TextView)findViewById(R.id.url_textView);

activity2_btn = (Button)findViewById(R.id.activity2_btn);

num_textView.setOnClickListener(mClickListener);
url_textView.setOnClickListener(mClickListener);

activity2_btn.setOnClickListener(mClickListener);



}

View.OnClickListener mClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){

case R.id.num_textView :
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+num_textView.getText().toString()));
startActivity(intent);
break;



case R.id.url_textView :
Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url_textView.getText().toString()));
startActivity(intent2);
break;

case R.id.activity2_btn :
Intent intent3 = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent3);
break;
}
}
};
}

ACTIVITY2 버튼을 클릭하면 새 엑티비티로 전환되는것을 볼수있습니다.

우리는 Activity 생성을 안드로이드 플러그인의 도움을 받아서 진행하였기 때문에 Manifest에 별다른 조치를 하지않았지만 직접생성하는경우 Manifest에
<activity android:name=".Main2Activity"></activity>
를 추가해주어야합니다.
manifest를 클릭해보면
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.tispoon.intentexample">

 <application
 android:allowBackup="true"
 android:icon="@mipmap/ic_launcher"
 android:label="@string/app_name"
 android:supportsRtl="true"
 android:theme="@style/AppTheme">
 <activity android:name=".MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />

 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 <activity android:name=".Main2Activity"></activity>
 </application>

</manifest>
다음과 같이 코드가 생성되있는것을 볼수있습니다.