새 엑티비티를 호출해보자
위강의에 이어서 진행합니다.
이번에는 새 엑티비티를 만들고 엑티비티간의 화면 전환을 하는 명시적 인텐트(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>
다음과 같이 코드가 생성되있는것을 볼수있습니다.