我提出的问题是关于事件protocol WalletProtocol {
func printMoneyStack()
}
class Wallet<T> {
var moneyStack: [T] = []
init(moneyStack: [T]) {
self.moneyStack = moneyStack
}
}
class BitcoinWallet: Wallet<String>, WalletProtocol {
func printMoneyStack() {
print(moneyStack)
}
}
class EthereumWallet: Wallet<Int>, WalletProtocol {
func printMoneyStack() {
print(moneyStack)
}
}
let bitcoinWallet = BitcoinWallet(moneyStack: ["A","B"])
let etheureumWallet = EthereumWallet(moneyStack: [1,2])
let wallets: [WalletProtocol] = [bitcoinWallet, etheureumWallet]
for wallet in wallets {
wallet.printMoneyStack()
}
,我声明它在之前的java中使用它,但它在我提交文本或更改文本时不显示日志。
这是我片段的代码:
Fragment_producto.kt
onQueryTextListener
请帮帮我。
由于
答案 0 :(得分:2)
尝试将searching
方法更改为:
private fun searching(search: SearchView) {
search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
Log.i(TAG,"Llego al querysubmit")
return false
}
override fun onQueryTextChange(newText: String): Boolean {
Log.i(TAG,"Llego al querytextchange")
return true
}
})
}
我还没有对它进行测试,但你的括号似乎不合适。我认为应该()
而不是{}
您使用onQueryTextListener
的方法(与上面代码中的setOnQueryTextListener
相比)不能为我编译。你在那里使用任何扩展方法吗?也许该方法将函数String->()
作为参数,所以当你将OnQueryTextListener
放在{}
中时,你只是给方法一个lambda作为创建一个对象的参数但从来没有使用它。
答案 1 :(得分:1)
我还必须实现侦听器以使其正确编译:
<cctype>