android.text.TextUtils.isDigitsOnly("")
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的代码检查输入字符串是否有效,但isDigitOnly()
函数返回true
空字符串.
如何让它返回false
空字符串或在功能中有其他Android版本?
我可以做到SwipeToDismiss
,但我想将刷卡的LazyColumn
项目恢复到原始状态。我不想删除滑动的项目,但想将其恢复到原始状态。
RecyclerView
我只需调用即可轻松实现此目的notifyItemChanged()
,但不知道如何在LazyColumn
.
下面是我的代码:
val dataList = remember{ mutableStateListOf<ListItem>()}
for(i in 0..100){
dataList.add(ListItem("$i", "'$i' is the item number."))
}
LazyColumn(Modifier.fillMaxSize()){
items(dataList, key = {it.id}){ item ->
val dismissState = rememberDismissState(
confirmStateChange = {
if(it == DismissedToEnd || it == DismissedToStart){
Handler(Looper.getMainLooper()).postDelayed({
//dataList.remove(item)
}, 1000)
}
true
}
)
SwipeToDismiss(
state = dismissState,
directions = setOf(StartToEnd, EndToStart),
dismissThresholds = { direction ->
FractionalThreshold(if (direction == StartToEnd || direction == EndToStart) 0.25f else 0.5f) …
Run Code Online (Sandbox Code Playgroud) 我正在使用函数类型来存储要在按钮单击时调用的代码.
如何从此函数返回类型
代码如下:
var SearchClickEvent: ((searchString: String) -> Unit)? = null
inputDialog!!.SearchClickEvent = Search_Click
private val Search_Click = { searchString: String ->
if(searchString.isEmpty()){
return//Error msg : return is not allowed here
//How to return from here
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我将一段代码存储在一个不调用或写入任何函数的变量中
编译时出现以下错误:
类型不匹配:推断的类型是 (String, Boolean) -> Any but ((String, Boolean) -> Unit)?预料之中
我的类型声明是
private val ConsisFilter_Click = { filterText: String, isStrictSearch: Boolean ->
try {
//My Codes
}
catch (e: Exception) {
try {
alert{}.show()
}catch (ignored: Exception) {}
}
}
var ConsisFilterClickEvent:((filterText: String, isStrictSearch: Boolean) -> Unit)? = null
Run Code Online (Sandbox Code Playgroud)
像这样分配
inputDialog!!.ConsisFilterClickEvent = ConsisFilter_Click
Run Code Online (Sandbox Code Playgroud)
我在其他地方遵循相同的模式,但没有收到任何错误。只有这件特定的作品有问题。难道我做错了什么。请帮我。
注意:如果我将ConsisFilter_Click
(try catch 块的代码)的所有代码放入一个单独的函数中,然后简单地ConsisFilter_Click
从那时起调用该函数,那么这一切都很好
谢谢
我知道kotlin扩展函数是作为静态函数编译的,使用fileName作为类名,后缀为Kt.问题是我的单个String参数函数在从java代码调用时要求两个String参数.
扩展函数在KUtils文件中
fun String.extractDigits(strValue: String): String {
val str = strValue.trim { it <= ' ' }
var digits = ""
var chrs: Char
for (i in 0..str.length - 1) {
chrs = str[i]
if (Character.isDigit(chrs)) {
digits += chrs
}
}
return digits
}
Run Code Online (Sandbox Code Playgroud)
调用java代码
KUtilsKt.extractDigits("99PI_12345.jpg")
Run Code Online (Sandbox Code Playgroud)
编译时错误消息:
错误:(206,42)错误:类KUtilsKt中的方法extractDigits不能应用于给定类型;
required:String,String
found:字符串
原因:实际和正式参数列表的长度不同
请帮助
谢谢