ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [10] Intent
    Develpment/Android Using Sample 2020. 9. 13. 21:36

    1. Intent


      Layout ( Main)

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?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">
     
        <Button
            android:id="@+id/intent_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="intent"/>
     
    </RelativeLayout>
     
    cs

    * 테스트에 사용할 Button 추가.


    Activity (Main) 

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class MainActivity extends AppCompatActivity {
     
        Button intent_btn;
     
        @Override
        protected 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() {
                @Override
                public void onClick(View view) {
     
                    Intent intent = new Intent();
     
                    intent.setClass(MainActivity.this, SubActivity.class);
     
                    startActivity(intent);
                }
            });
        }
    }
    cs

    * 버튼클릭시에 Intnet로 화면전환.

    * 단, 이동하고자 하는 클래스는 Manifest에 등록 되어 있어야 한다.


     Layout(Sub)

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?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">
     
        <Button
            android:id="@+id/intentBack_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="back"/>
     
    </RelativeLayout>
     
    cs

    * 전환된 화면에서 원래 화면으로 돌아가기 위한 버튼 추가.


     Activity(Sub) 

     

    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
    package 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;
     
        @Override
        protected 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() {
                @Override
                public 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

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class MainActivity extends AppCompatActivity {
     
        Button intent_btn;
     
        @Override
        protected 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() {
                @Override
                public 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

    댓글

Designed by Tistory.