티스토리 뷰

728x90

지난 글에서 Dialog를 만들었지만 바탕의 Activity가 pause되지 않아 말짱 도루묵 상태..

물론 Dialog를 해내었으니 완전 말짱까지는 아니다 약간 양념된 도루묵 정도..?

암턴! 시작한다

 

Activity를 이용한 다이얼로그는 그렇게 어렵지 않았다!

링크들만 잘 따라해도 금방 할 수 있다(그러나 장점이 있으면 단점도 있기 마련..)

 

DialogActivity를 추가해준다.

  • DialogActivity .java
    public class DialogActivity extends Activity implements View.OnClickListener {
    
        private Button mOk, mCancel;
        private ActivityDialogBinding binding;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            binding = ActivityDialogBinding.inflate(getLayoutInflater());
            setContentView(binding.getRoot());
            initBox();
        }
    
        @Override
        public void onClick(View view) {
            switch(view.getId()) {
                case R.id.btnOk:
                    //실행할 내용
    		this.finish(); //필수~!
                    break;
                case R.id.btnCancel:
                    //실행할 내용
                    this.finish();
                    break;
                default:
                    break;
            }
        }
    
        private void initBox(){
            mOk = binding.btnOk;
            mCancel = binding.btnCancel;
            mOk.setOnClickListener(this);
            mCancel.setOnClickListener(this);
        }
    }

 

XML의 모양을 만져줍니다.

  • XML
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.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="300dip"
        android:layout_height="200dip"
        tools:context=".DialogActivity">
    
        <TextView
            android:id="@+id/txtView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_medium"
            android:text="이동할까요?"
            android:textSize="20sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/btnOk"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_medium"
            android:text="확인"
            app:layout_constraintEnd_toStartOf="@id/btnCancel"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/txtView" />
    
        <Button
            android:id="@+id/btnCancel"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_medium"
            android:text="취소"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@id/btnOk"
            app:layout_constraintTop_toBottomOf="@id/txtView" />
    
    
    </androidx.constraintlayout.widget.ConstraintLayout>

 

그리고 실행할 공간에 가서 startActivity로 실행하면 됨!

Intent intent = new Intent(DetectorActivity.this, DialogActivity.class);
startActivity(intent);

 

❗보고 가세요

DialogActivity는 AppCompatActivity가 아니라 일반 Activity를 상속합니다.

AndroidManifest에서 다음과 같이 추가해주세요

<activity android:name=".DialogActivity"
            android:label="@string/dialog_name"
            android:theme="@android:style/Theme.Holo.Dialog">
</activity>

테마는 꼭 저 테마를 써야하는 것이 아니므로 본인의 취향에 따라 선택하자!

 

 

 

728x90
댓글
250x250
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함