-
[10] IntentDevelpment/Android Using Sample 2020. 9. 13. 21:36
1. Intent
Layout ( Main)
1234567891011121314151617181920<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.sin.sample_2.MainActivity"><Buttonandroid:id="@+id/intent_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="intent"/></RelativeLayout>cs * 테스트에 사용할 Button 추가.
Activity (Main)
123456789101112131415161718192021222324public class MainActivity extends AppCompatActivity {Button intent_btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intent_btn = (Button)findViewById(R.id.intent_btn);intent_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.setClass(MainActivity.this, SubActivity.class);startActivity(intent);}});}}cs * 버튼클릭시에 Intnet로 화면전환.
* 단, 이동하고자 하는 클래스는 Manifest에 등록 되어 있어야 한다.
Layout(Sub)
1234567891011121314151617181920<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_sub"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.sin.sample_2.SubActivity"><Buttonandroid:id="@+id/intentBack_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="back"/></RelativeLayout>cs * 전환된 화면에서 원래 화면으로 돌아가기 위한 버튼 추가.
Activity(Sub)
123456789101112131415161718192021222324252627282930313233package com.example.sin.sample_2;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class SubActivity extends AppCompatActivity {Button intentBack_btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sub);intentBack_btn = (Button)findViewById(R.id.intentBack_btn);intentBack_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(SubActivity.this, MainActivity.class);intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(intent);}});}}cs * Main화면에서 전환할 화면 레이아웃.
* Button 추가하여 Main화면으로 전환 추가.
* setClass()를 사용하지 않고 생성자에서 바로 설정 가능.
* setFlags()를 사용하여 옵션 설정 가능.
* FLAG_ACTIVITY_CLEAR_TOP : 현재창 닫기, FLAG_ACTIVITY_SINGLE_TOP : 맨위창 중복 방지.
2. 결과화면
3. 웹페이지로 전환
Activity
123456789101112131415161718192021222324public class MainActivity extends AppCompatActivity {Button intent_btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intent_btn = (Button)findViewById(R.id.intent_btn);intent_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent( Intent.ACTION_VIEW );intent.setData(Uri.parse("http://www.naver.com"));startActivity(intent);}});}}cs * Intent.ACTION_VIEW 로 해주지 않을 경우 정상적으로 이동하지 않는 경우 발생.
* setData()로 이동할 웹페이지 주소값 세팅.
* startActivity()로 이동.
4. 결과화면
'Develpment > Android Using Sample' 카테고리의 다른 글
[12] 앱종료 확인 (Handler 응용) (0) 2020.09.13 [11] Handler (0) 2020.09.13 [9] Rating Bar (0) 2020.09.13 [8] Dialog (0) 2020.09.13 [7] Alert Dialog (0) 2020.09.13