簡體   English   中英

Android 自定義對話框不顯示標題和消息

[英]Android custom dialog not displaying title and message

我有一個自定義對話框,但標題和消息都沒有顯示:

import android.app.Dialog
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatDialogFragment
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.sibela.horn.R

class CarYearDialog : AppCompatDialogFragment() {

    private val args: CarYearDialogArgs by navArgs()
    private val car by lazy { args.car }

    private val rootView by lazy { View.inflate(activity, R.layout.dialog_car_year, null) }
    private val yearInput by lazy { rootView.findViewById<TextView>(R.id.year_input) }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val builder = setupDialog()
        val dialog = builder.create()
        dialog.setCanceledOnTouchOutside(false)
        return dialog
    }

    private fun setupDialog(): AlertDialog.Builder {
        return AlertDialog.Builder(requireActivity(), R.style.AlertDialogTheme)
            .setTitle("Ano")
            .setMessage("Escolha o ano do veículo")
            .setView(rootView)
            .setNegativeButton("Cancelar") { _, _ -> }
            .setPositiveButton("Ok") { _, _ ->
                val year = yearInput.text.toString().toInt()
                val directions =
                    CarYearDialogDirections.actionCarYearDialogToHornToContactsFragment(car, year)
                findNavController().navigate(directions)
            }
    }
}

在此處輸入圖像描述

您可以使用 MaterialAlertDialogBuilder。

import android.app.Dialog
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatDialogFragment
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.sibela.horn.R

class CarYearDialog : AppCompatDialogFragment() {

    private val args: CarYearDialogArgs by navArgs()
    private val car by lazy { args.car }

    private val rootView by lazy { View.inflate(activity, R.layout.dialog_car_year, null) }
    private val yearInput by lazy { rootView.findViewById<TextView>(R.id.yearinput) }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val builder = setupDialog()
        val dialog = builder.create()
        dialog.setCanceledOnTouchOutside(false)
        return dialog
    }

    private fun setupDialog(): AlertDialog.Builder {
        return MaterialAlertDialogBuilder(this.requireContext())
            .setTitle("Ano")
            .setMessage("Escolha o ano do veículo")
            .setView(rootView)
            .setNegativeButton("Cancelar") { ,  -> }
            .setPositiveButton("Ok") { , _ ->
                val year = yearInput.text.toString().toInt()
                val directions =
                    CarYearDialogDirections.actionCarYearDialogToHornToContactsFragment(car, year)
                findNavController().navigate(directions)
            }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM