英文:
Chromebook. How do I know if my onResume is being called from the "emoji popup"?
问题
我有一个用于Chromebook的聊天应用。
我在聊天中按下搜索 + Shift + Enter -> 弹出“表情符号弹出窗口”。
这会调用我的应用程序的“onPause”,因为对话框在应用程序上方。
在我选择表情符号后,我的应用程序的“onResume”被调用。
我在检查这个问题:
try {
var newText = inputManager?.inputText
if (newText != null && inputOnPause != null && newText.length > inputOnPause?.length ?: 0) {
val new = newText.replace(inputOnPause!!, "")
hasEmojis(new)
} else false
} catch (e: Exception) {
false
}
但是出于某种原因,现在“表情符号”加载得太慢,所以我无法检查我的“onResume”是否是由于表情符号弹出对话框而调用的。
是否有更好的方法来确定我的“onResume”是否是由于表情符号弹出对话框而调用的?
我检查了我的活动onIntent和Data/Action都是null
所以不知道我的文本视图从哪里获取文本。
英文:
I have a chat app for chromebook.
I am in the chat and I press Search + Shift + Enter -> which brings up the "emoji popup"
This calls my apps "onPause" as the dialog is on top of the app.
After I select an emoji, my apps "onResume" is being called.
I was checking this:
try {
var newText = inputManager?.inputText
if (newText != null && inputOnPause != null && newText.length > inputOnPause?.length ?: 0) {
val new = newText.replace(inputOnPause!!, "")
hasEmojis(new)
} else false
} catch (e: Exception) {
false
}
But for some reason now the "emoji" is loaded too slow so I cannot check if my onResume is being from an emoji or not.
Is there a better way to know if my onResume is called due to emoji popup dialog?
I checked my activity onIntent and Data/Action are null
So no idea from where my textview takes the text from neither
答案1
得分: 0
如果您无法确定您的onResume方法是否因表情符号弹出对话框而被调用,您可以尝试另一种方法来检测表情符号输入。不要依赖于对newText和inputOnPause进行比较来检查表情符号输入,您可以利用inputManager直接检查输入是否包含表情符号字符。
try {
val newText = inputManager?.inputText
if (newText != null && hasEmojis(newText)) {
// 检测到表情符号输入
// 根据需要处理
} else {
// 没有表情符号输入
}
} catch (e: Exception) {
// 错误处理
}
在这个代码中,hasEmojis
函数负责确定输入文本是否包含任何表情符号字符。您可以使用各种方法来实现这个函数,比如使用正则表达式或检查与表情符号相关的特定Unicode范围。
英文:
If you're unable to determine if your onResume method is called specifically due to the emoji popup dialog, you can try an alternative approach to detect the emoji input. Instead of relying on the comparison of newText and inputOnPause to check for emoji input, you can utilize the inputManager to directly check if the input contains emoji characters.
try {
val newText = inputManager?.inputText
if (newText != null && hasEmojis(newText)) {
// Emoji input detected
// Handle accordingly
} else {
// No emoji input
}
} catch (e: Exception) {
// Error handling
}
In this code, the hasEmojis function is responsible for determining whether the input text contains any emoji characters. You can implement this function using various approaches, such as regular expressions or checking for specific Unicode ranges associated with emojis.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论