Android Studio 대화 상자의 구성 요소

Android 대화 구성





Androif의 대화 구성에서 최소한 필요한 것은・コンテンツエリアボタン・アクションボタン1つ뿐입니다.

액션 버튼은 3 종류 있어 각각의 위치 관계는 위 그림과 같습니다.

대화상자 표시 절차


1, DialogFragment を継承したクラスを作成する。2, onCreateDialog メソッドにダイアログ生成処理を記述し、生成したダイアログオブジェクトをリターンする。 ← 여기가 다소!3,アクティビティでは 1 のオブジェクトを生成し、show()メソッドを実行する。
이번 화면 구성
화면에서 목록 보기를 탭합니다.
→ 대화상자 표시됨(화면 전환이 아닌 첫 화면 위에 표시됨)
→ 다이얼로그의 액션 버튼 탭
→각각으로 다른 메시지가 토스트 표시된다(수초에 사라짐)

이번에는, 리스트뷰는 설정하고 있는 것이 전제로 이야기를 진행해 갑니다.
목록보기는 여기을 참조하십시오.

1, DialogFragment를 상속한 클래스를 작성한다.



∟ 다이얼로그 생성 클래스를 작성한다(java > 패키지명 > 오른쪽 클릭 > new > Kotlin File/Class)
∟ 조각 클래스를 만듭니다.

※단편 클래스의 큰 특징으로서는, 복수의 페인을 가질 수 있는 것과 복수의 라이프 사이클을 넘어서 값을 보관 유지할 수 있는 것입니다. Activity 위에서 동작하므로 Activity의 라이프사이클에 맞추어 페인을 생성·파기합니다.
Fragment는 간단히 말해서 콘텐츠와 라이프 사이클을 가진 뷰입니다. 부품으로, 하위 활동적인 서 위치입니다.
참조

나도 지금 핀으로 오지 않지만 Fragment 클래스는 액티비티가 아니라 액티비티에서 호출되는 객체라고 이해합니다. (잘못하면 죄송합니다.)

샘플 코드


class OrderConfirmDialogFragment : DialogFragment() {

2, onCreateDialog 메소드에 다이얼로그 생성 처리를 기술해, 생성한 다이얼로그 오브젝트를 리턴한다.



이 부분이 어려웠습니다!

절차



1, 빌더 클래스 준비



∟ Android에서 대화 상자를 생성하려면 AlertDialog 객체를 생성해야합니다.
→이를 위해 먼저 AlertDialog.Builder 객체를 생성해야합니다.

샘플 코드 2행째의 「activity?.let」는, 프래그먼트 클래스는 activit 클래스를 계승하고 있지 않기 때문에, activity로 사용되고 있는 프로퍼티을 사용할 수 없는 것이 많이 있습니다.
거기서 사용하는 것이 Nullableプロパティactivityプロパティ 입니다.Nullableプロパティ 그래서, セーフコール演算子?. 를 사용해, null가 아닌 경우에 오브젝트를 생성하도록(듯이) 설정합니다.

2, 표시, 액션 버튼 설정


setMassage() 메소드나, setTitle() 메소드를 사용해, 인수에 R값을 지정하는 것으로, 다양한 표시의 설정을 합니다.
setPositiveButton() 메소드 등을 사용해, 액션 버튼의 설정을 합니다.
인수에는, (버튼 표시 캐릭터 라인, 버튼이 탭되었을 때의 청취자 클래스의 지정)를 하고 있습니다.

4, 다이얼로그 객체 생성



Kotlin에서는 클래스를 작성해도 구현하지 않으면 의미가 없습니다.
그것과 동일한 지수로 대화 상자 객체를 생성합니다.
거기서 사용하는 것이, create() 메소드입니다.

마지막 행에서 ?: throw IllegalStateException("アクティビティがnullです") 로 하고 있는 것은 エルビス演算子?. 로, null 의 경우의 처리를 기술하고 있습니다.

각 설정 화면은 맨 위에 나열되어 있습니다. 참조하십시오.

샘플 코드


override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        //アクティビティがnull出ないならばダイアログオブジェクトを生成
        val dialog = activity?.let {
            val builder = AlertDialog.Builder(it)
            //ダイアログのタイトルを設定
            builder.setTitle(R.string.dialog_title)
            //ダイアログメッセージを設定
            builder.setMessage(R.string.dialog_msg)
            //Positive Buttonを設定
            builder.setPositiveButton(R.string.dialog_btn_ok, DialogButtonClickListener())
            //Negative Buttonを設定
            builder.setNegativeButton(R.string.dialog_btn_ng,DialogButtonClickListener())
            //Neutral Buttonを設定
            builder.setNeutralButton(R.string.dialog_btn_nu, DialogButtonClickListener())
            //ダイアログオブジェクトを生成
            builder.create()
        }
        //生成したダイアログオブジェクトをリターン
        return dialog ?: throw IllegalStateException("アクティビティがnullです")
    }

3, 액티비티에서는 1의 객체를 생성하고 show() 메소드를 실행한다.



샘플 코드



MainActivity.kt
            //注文確認ダイアログフラグメントオブジェクトを生成
            val dialogFragment = OrderConfirmDialogFragment()
            //ダイアログ表示
            dialogFragment.show(supportFragmentManager, "OrderConfirmDialogFlagment")

좋은 웹페이지 즐겨찾기