Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我的画布上添加新标签时出现问题-Android_Java_Android_Kotlin_Canvas - Fatal编程技术网

Java 在我的画布上添加新标签时出现问题-Android

Java 在我的画布上添加新标签时出现问题-Android,java,android,kotlin,canvas,Java,Android,Kotlin,Canvas,我正在开发一个绘图应用程序,用户也可以插入一个文本标签与他们想要的文本。为此,当用户选择文本标签时,会出现一个AlertDialog,用户在其中键入文本。插入第一个文本时没有问题。当用户已经有了一个标签并且准备添加一个新标签时,问题就会出现。将标签添加到画布时,所有其他标签将消失,只留下新标签。但是,如果用户双击新标签,或者在新标签外面单击并在里面单击,标签会重新出现在正确的位置 我已经做了一个测试,我在alertDialog外生成了同名的标签默认值,只需按下任何按钮,就可以正确添加标签,而其他

我正在开发一个绘图应用程序,用户也可以插入一个文本标签与他们想要的文本。为此,当用户选择文本标签时,会出现一个AlertDialog,用户在其中键入文本。插入第一个文本时没有问题。当用户已经有了一个标签并且准备添加一个新标签时,问题就会出现。将标签添加到画布时,所有其他标签将消失,只留下新标签。但是,如果用户双击新标签,或者在新标签外面单击并在里面单击,标签会重新出现在正确的位置

我已经做了一个测试,我在alertDialog外生成了同名的标签默认值,只需按下任何按钮,就可以正确添加标签,而其他标签不会消失。换句话说,当我使用alertDialog时,我的标签就是不起作用。我已经运行了,但找不到错误。有人能帮我吗

主要活动:

text.setOnClickListener { 
        showAlertDialogSticker() 
}

//Change text color dialog box
private fun showAlertDialogSticker() {
    val dialogBuilder = AlertDialog.Builder(this@MainActivity)
    val layoutView = layoutInflater.inflate(R.layout.dialog_sticker, null)

    checkBold = layoutView.findViewById(R.id.radio_bold)
    checkItalic = layoutView.findViewById(R.id.radio_italic)
    checkSublime = layoutView.findViewById(R.id.radio_sublime)
    pickedColorSticker = layoutView.findViewById(R.id.pickedColorSticker)
    txtSticker = layoutView.findViewById(R.id.txt_sticker)
    sticker = layoutView.findViewById(R.id.sticker)
    multiColorPickerSticker = layoutView.findViewById(R.id.multiColorPickerSticker)

    multiColorPickerSticker.setInitialColor(0x7F313C93)
    multiColorPickerSticker.subscribe { color: Int, _: Boolean, _: Boolean ->
        pickedColorSticker.setBackgroundColor(color)
        sticker.setTextColor(color)
        textColor = color
    }

    dialogButtonCancel = layoutView.findViewById(R.id.btnCancel)
    dialogButtonAdd = layoutView.findViewById(R.id.btnSave)

    dialogBuilder.setView(layoutView)
    dialogAdd = dialogBuilder.create()
    dialogAdd.window?.attributes?.windowAnimations ?: R.style.DialogAnimation
    dialogAdd.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
    dialogAdd.show()

    dialogButtonCancel.setOnClickListener {
        dialogAdd.cancel()
    }

    dialogButtonAdd.setOnClickListener {
        //Add text sticker
        validFiel()
        if (isValid) {
            my_canvas.addTextSticker(textStick, textColor, null)
            dialogAdd.dismiss()
        }
    }

}
使用上面的代码,我报告了问题。按如下方式调用该方法,可以添加几个贴纸而不会出现问题

text.setOnClickListener {
     my_canvas.addTextSticker(textStick, textColor, null)
}