지난 글에서 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>
테마는 꼭 저 테마를 써야하는 것이 아니므로 본인의 취향에 따라 선택하자!
Uploaded by Notion2Tistory v1.1.0