0. 실행 결과 화면
1. AndroidManifest.xml
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 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tistory.qlyh8.pracitice"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" 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> <!-- 상단 화면 이름을 "서브 화면"으로, 아래와 같이 theme 를 설정하면 대화상자 화면으로 나온다. --> <activity android:name=".SubActivity" android:label="서브 화면" android:theme="@style/Base.Theme.AppCompat.Light.Dialog" /> </application> </manifest> | cs |
2. activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context="com.tistory.qlyh8.pracitice.MainActivity" android:gravity="center"> <Button android:id="@+id/button" android:layout_width="200dp" android:layout_height="wrap_content" android:text="화면전환" /> </LinearLayout> | cs |
3. activity_sub.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.tistory.qlyh8.pracitice.SubActivity"> <Button android:id="@+id/button" android:layout_width="100dp" android:layout_height="wrap_content" android:text="돌아가기" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent"/> </android.support.constraint.ConstraintLayout> | cs |
4. SubActivity.java
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 | package com.tistory.qlyh8.pracitice; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class SubActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sub); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("name", "Tom"); setResult(Activity.RESULT_OK, intent); finish(); } }); } } | cs |
5. MainActivity.java
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 39 40 41 42 43 44 45 46 47 48 | package com.tistory.qlyh8.pracitice; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), SubActivity.class); //startActivity(intent); startActivityForResult(intent, 101); // 요청코드는 각각의 화면을 구분하는 구분자 // ComponentName 객체를 만들어 설정하는 방법 // 액티비티를 문자열로만 지정할 수 있어서 동적으로 액티비티를 지정해주고 싶을 때 사용할 수 있다. /*Intent intent = new Intent(); ComponentName name = new ComponentName("qlyh8.tistory.com.pracitice", "qlyh8.tistory.com.pracitice.SubActivity"); intent.setComponent(name); startActivityForResult(intent, 101);*/ } }); } // 응답을 받아주는 메서드 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 101){ Toast.makeText(getApplicationContext(), "Name: " + data.getStringExtra("name"), Toast.LENGTH_LONG).show(); } } } | cs |
출처: https://www.edwith.org/boostcourse-android/lecture/17064/
'Android' 카테고리의 다른 글
액티비티 수명주기 (Activity Lifecycle) - (1) (0) | 2018.05.19 |
---|---|
부가데이터 (Extra) - Serializable & Parcelable (0) | 2018.05.19 |
애플리케이션 구성요소와 액티비티 전환 (1) (0) | 2018.05.19 |
Android Studio와 Git 연동하기 (0) | 2018.05.18 |
GridView (그리드뷰) (0) | 2018.05.07 |