Java 在我的画布上添加新标签时出现问题-Android
我正在开发一个绘图应用程序,用户也可以插入一个文本标签与他们想要的文本。为此,当用户选择文本标签时,会出现一个AlertDialog,用户在其中键入文本。插入第一个文本时没有问题。当用户已经有了一个标签并且准备添加一个新标签时,问题就会出现。将标签添加到画布时,所有其他标签将消失,只留下新标签。但是,如果用户双击新标签,或者在新标签外面单击并在里面单击,标签会重新出现在正确的位置 我已经做了一个测试,我在alertDialog外生成了同名的标签默认值,只需按下任何按钮,就可以正确添加标签,而其他标签不会消失。换句话说,当我使用alertDialog时,我的标签就是不起作用。我已经运行了,但找不到错误。有人能帮我吗 主要活动:Java 在我的画布上添加新标签时出现问题-Android,java,android,kotlin,canvas,Java,Android,Kotlin,Canvas,我正在开发一个绘图应用程序,用户也可以插入一个文本标签与他们想要的文本。为此,当用户选择文本标签时,会出现一个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)
}