티스토리 뷰

지난 글에서 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함